• Recent
  • Tags
  • Popular
  • Home
  • Docs
  • Register
  • Login
RetroPie forum home
  • Recent
  • Tags
  • Popular
  • Home
  • Docs
  • Register
  • Login

3.7 performance tuning

Scheduled Pinned Locked Moved General Discussion and Gaming
freezing3.7xbox360
18 Posts 8 Posters 7.6k Views
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • R
    Rion
    last edited by Rion 5 Mar 2016, 02:36 3 May 2016, 01:34

    @crudster can you explain what the first lines of code actually does? Referring to this.

    echo "deadline" > /sys/block/mmcblk0/queue/scheduler
    echo "0" > /sys/block/mmcblk0/queue/rotational
    echo "2048" > /sys/block/mmcblk0/queue/nr_requests
    echo 3 > /proc/sys/vm/dirty_ratio
    echo 200 > /proc/sys/vm/dirty_expire_centisecs
    echo 640 > /sys/block/mmcblk0/queue/read_ahead_kb
    

    FBNeo rom filtering
    Mame2003 Arcade Bezels
    Fba Arcade Bezels
    Fba NeoGeo Bezels

    1 Reply Last reply Reply Quote 0
    • C
      crudster
      last edited by 3 May 2016, 20:22

      The whole purpose of these tuning was to remove the frequent annoying pauses the stock 3.7 retropie image was having on an RPI3. Overclocking did not resolve this. I'd be navigating menus and it would just freeze for a few seconds. Using my Linux skills i determined it to be a read/write bottleneck on the SD card (class 10, 128 Kingston - which is a very good SD card). It ended up NOT being the card, but rather the OS parameters.....

      These are system commands that control the way that the system reads and writes the sd card. I don't guarantee they are perfect, but they WILL NOT harm your SD card at all. Overclocking the SD card / your PI however may cause problems.

      The scheduler is the way that the system chooses when multiple processes want to read or write simultaneously. Different schedulers are better for different things.

      The other commands are essentially telling the system to hold data in ram before writing it to disk. This has the benefit of making the system "feel" more responsive when lots of reading/writing occurs. If the SD card is 100% busy writing it allows the process to write to memory then it flushes it back to SD when things calm down.

      Finally the read_ahead_kb is how far ahead of a read command the system will go and hold in ram just in case a process needs more. For example, in reading a large rom (say Playstation ISO), the original PSX only had so much ram, so when it needs to read a really large file it just reads a chunk, then gets rid of it and reads more as it progresses. Your computer is no different, however it has the luxury of much more memory. So i have it set at a very conservative 640Kb (just over .5 MB of memory), since this i've actually updated the 640 to 4096 (4MB of ram). You don't want it too big as a small read will cause it to actually read 640kb instead of say the 32kb it wanted. So sometimes you win, other times it is a waste.

      1 Reply Last reply Reply Quote 1
      • B
        BuZz administrators
        last edited by BuZz 5 Mar 2016, 21:31 3 May 2016, 20:28

        They also may be detrimental to performance on some cards and for some IO patterns.

        Some points

        • Such a large read ahead could reduce random IO performance.
        • Lowering /proc/sys/vm/dirty_ratio can trigger more data to be written at once - which could cause larger delays.
        • /sys/block/mmcblk0/queue/rotational is already set to 0 by default.
        • dwc_otg.speed=1 will lower usb/network performance

        You might want to use sysctl to manage /proc/sys changes via /etc/sysctl.d/ (you can see the 98-rpi.conf in there which adjusts vm.swappiness already)

        To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

        C 1 Reply Last reply 3 May 2016, 21:11 Reply Quote 2
        • C
          crudster @BuZz
          last edited by 3 May 2016, 21:11

          @BuZz Agree fully. As with anything on the internet, there is no warranty/guarantee. I am just sharing information like any other linux / open source project. Maybe it helps someone, maybe not and maybe someone learns something. I didn't make this post for anything other than to share my findings.

          S 1 Reply Last reply 4 May 2016, 01:48 Reply Quote 1
          • C
            caver01
            last edited by 3 May 2016, 21:21

            This is interesting, but I haven't updated binaries yet after 3.7 came out. I am still running 3.6. Is everyone seeing these "annoying pauses"? In other words, is there concern among the core developers about this?

            My 4-player cocktail style cabinet built as a custom "roadcase"

            1 Reply Last reply Reply Quote 0
            • B
              BuZz administrators
              last edited by BuZz 5 Apr 2016, 00:06 3 May 2016, 23:04

              @crudster Agree it's useful to share info - so long as people are aware what they are changing, and that it comes at their own risk in terms of potential sd card corruption, or system instability etc.

              Regarding the pausing issue - Only on PPSSPP when data is being written out (most noticeable on slower card). Not in general use. One of my cards (Toshiba) is significantly slower at writing than another one (Sandisk), and takes a long time to do tasks that involve a lot of IO such as upgrading packages.

              Note that RetroPie is not an OS. It is a set of code/tools/packages that run on top of Raspbian to allow easy setting up of an emulation environment (And Debian/Ubuntu). Our image has a few customisations in regards to the boot process, but I generally leave things as close possible to the Raspbian Lite image. It's basically just Raspbian with RetroPie installed on top.

              To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

              1 Reply Last reply Reply Quote 1
              • S
                senkun @crudster
                last edited by 4 May 2016, 01:48

                @crudster said in 3.7 performance tuning:

                @BuZz Agree fully. As with anything on the internet, there is no warranty/guarantee. I am just sharing information like any other linux / open source project. Maybe it helps someone, maybe not and maybe someone learns something. I didn't make this post for anything other than to share my findings.

                thank you for sharing, I finally am able to enjoy playing space invaders:extreme on the ppsspp, before the tweaks it was an exercise in frustration due to the pauses. of course, it may be different for other setups and cards, but it definitely helped in my case. I all but gave up on the ppsspp till I tried your findings. thanks again.

                1 Reply Last reply Reply Quote 0
                • D
                  dankcushions Global Moderator
                  last edited by 5 Jun 2016, 12:45

                  just FYI: a fix has just been made to PPSSPP that means the pausing issue is gone! reinstall from source to get it. @BuZz - worth a rebuild of the binaries i think!

                  https://github.com/hrydgard/ppsspp/pull/8801

                  1 Reply Last reply Reply Quote 0
                  • B
                    BuZz administrators
                    last edited by BuZz 6 May 2016, 14:17 5 Jun 2016, 13:16

                    will do - after my bbq ;-) thanks for the heads up!

                    To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

                    1 Reply Last reply Reply Quote 0
                    • B
                      BuZz administrators
                      last edited by 5 Jun 2016, 20:14

                      I have updated the PPSSPP binaries. (rpi2/3 only). has anyone tested the performance on a rpi1 ? It was little poor when I did, but perhaps I should make it available for rpi1/zero anyway - some stuff may be playable.

                      To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

                      1 Reply Last reply Reply Quote 0
                      • B
                        BuZz administrators
                        last edited by 7 Jun 2016, 13:36

                        I cherry-picked the fix into our lr-ppsspp fork so if you re-install that from binary/source it should also run without the pauses (tested working here)

                        To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

                        1 Reply Last reply Reply Quote 1
                        • First post
                          Last post

                        Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.

                        Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.

                          [[user:consent.lead]]
                          [[user:consent.not_received]]