Jump to content

Got the 'stalling' problem? Rooted? Try this...


Guest PaulOBrien

Recommended Posts

Guest oxylos

There is maybe new way to solve the Stall problem.

Move your /data/data to external sd card instead of the NAND

It seems that the problem is not the slow internal SD but the simultaneously access to it by the OS when low of memory (swap?) and Apps loading data.

So moving to external SD could be enough to eliminate the blackouts and stalls.

Can someone prove this?

Edited by oxylos
Link to comment
Share on other sites

Guest oachim

Hi,

Thanks for your patch.

I have a question: I'm trying to reverse Paul's fix before applying your script. I was wondering if, by default, there is any /dbdata/data directory or not (it was created while applying Pau's instructions). While I was assumed there is no /dbdata/data directory, I have noticed your script assumes there is one (you're not creating it anywhere).

Would you please clarify this?

Regards,

Ovidiu

I have created a script that will only move the core folders (com.android and com.sec.android) to the /dbdata folder. This will ensure new third party apps able to install w/o worrying about the disk space constraint.

beware this script assume you have not done the stall patch yet (i.e. all the folders are still in /data/data). if you have already done that, make sure you reverse the origianl patch before applying this script.

Link to comment
Share on other sites

Guest Arnon
There is maybe new way to solve the Stall problem.

Move your /data/data to external sd card instead of the NAND

It seems that the problem is not the slow internal SD but the simultaneously access to it by the OS when low of memory (swap?) and Apps loading data.

So moving to external SD could be enough to eliminate the blackouts and stalls.

Can someone prove this?

It is easy to link to the SD card the problem is that when you plug the device to a USB the SD folder may not be available (if the SD is mounted as an external card...)

Also (almost forgot) you need to repartition anyway since there's a permission problem when you try to just copy over the data - and then the problem you have is that you need to remount it as startup

Edited by Arnon
Link to comment
Share on other sites

Guest zenkinz
Hi,

Thanks for your patch.

I have a question: I'm trying to reverse Paul's fix before applying your script. I was wondering if, by default, there is any /dbdata/data directory or not (it was created while applying Pau's instructions). While I was assumed there is no /dbdata/data directory, I have noticed your script assumes there is one (you're not creating it anywhere).

Would you please clarify this?

Regards,

Ovidiu

you are right, create data in /dbdata, so that all the sym links can be stored under /dbdata/data for better organisation.

Link to comment
Share on other sites

Guest us1111
It is easy to link to the SD card the problem is that when you plug the device to a USB the SD folder may not be available (if the SD is mounted as an external card...)

That's not the way.. Create a ext2/3 partition on the SDCARD and then do the rest.. Because of file specific attributes, you could neve move the files to vfat.

Also adjusted the script to do some minor checks (just to be sure :)). Not tested this yet..

echo "Optimising com.android folders"

echo ""


mkdir -p /dbdata/data

for i in `ls -d com.android.*`

do 

  echo "Moving $i ..."

  cp -rp $i /dbdata/data

  if [ $? -eq 0 ]; then 

	rm -r $i

	ln -s /dbdata/data/$i /data/data/$i

  else

	echo "Error linking: $i"

  fi

done


echo "Done with com.android optimisation."

echo ""


echo "Optimising com.sec.android folders"

echo ""

for i in `ls -d com.sec.android.*`

do 

  echo "Moving $i ..."

  cp -rp $i /dbdata/data

  if [ $? -eq 0 ]; then 

	rm -r $i

	ln -s /dbdata/data/$i /data/data/$i

  else

	echo "Error linking: $i"

  fi

done

Edited by us1111
Link to comment
Share on other sites

Guest DistortedLoop
Move your /data/data to external sd card instead of the NAND

It seems that the problem is not the slow internal SD but the simultaneously access to it by the OS when low of memory (swap?) and Apps loading data.

If your theory is correct, wouldn't it be simpler/safer to move the swap to an ext partition on the external sdcard?

It is easy to link to the SD card the problem is that when you plug the device to a USB the SD folder may not be available (if the SD is mounted as an external card...)

Also (almost forgot) you need to repartition anyway since there's a permission problem when you try to just copy over the data - and then the problem you have is that you need to remount it as startup

Do the ext partitions get unmounted from the OS when you do the USB mount of the sdcard? I never noticed issues with my apps2sd applicatoins running when I was USB mounted, but I can't be sure I ever tried to run them.

That's not the way.. Create a ext2/3 partition on the SDCARD and then do the rest.. Because of file specific attributes, you could neve move the files to vfat.

You don't like ext4?

Link to comment
Share on other sites

Guest gravityz3r0
If your theory is correct, wouldn't it be simpler/safer to move the swap to an ext partition on the external sdcard?

Do the ext partitions get unmounted from the OS when you do the USB mount of the sdcard? I never noticed issues with my apps2sd applicatoins running when I was USB mounted, but I can't be sure I ever tried to run them.

You don't like ext4?

Yes it does get unmounted just like internal SD, i.e : your custom ringtones will all revert to the default tones, just one of the example.

Edited by gravityz3r0
Link to comment
Share on other sites

Guest mickeko
If your theory is correct, wouldn't it be simpler/safer to move the swap to an ext partition on the external sdcard?

Or better yet, put the swap on /dbdata? Most phones don't have as huge internal memory as the SGS so it really shouldn't be necessary to have a whole lot of swap anyway (if at all?). Android doesn't use swap anyway afaik.

Edited by mickeko
Link to comment
Share on other sites

Guest DistortedLoop
Or better yet, put the swap on /dbdata? Most phones don't have as huge internal memory as the SGS so it really shouldn't be necessary to have a whole lot of swap anyway (if at all?). Android doesn't use swap anyway afaik.

Yeah, I don't know how much swap is actually used. Cyanogen's recommending not to bother with a swap partition on the Nexus One, but that doesn't mean the phone doesn't swap at all.

Is the /dbdata on the same physical device as the other stuff? The concept I was responding to was the suggestion that the slowdowns are caused by the OS trying to read an apk to open it while messing with swap on the same physical device at the same time. Are there two separate sets of memory in the SGS - I was under the impression that there was just one big 8GB chip partitioned out to the ROM and internal sdcard? I've only had the phone 36 hours, still trying to get up to speed on it.

Link to comment
Share on other sites

Guest us1111

I would really advise against using swap.. If you take into account the amount of physical memory (512MB) and the slow transfer rate of SD, this would be crazy.. But maybe we are confusing cache with swap now?

You don't like ext4?

No, love ext4 but i'm not sure it's default compiled in the kernel used on the GS.

Edited by us1111
Link to comment
Share on other sites

Guest mickeko
Yeah, I don't know how much swap is actually used. Cyanogen's recommending not to bother with a swap partition on the Nexus One, but that doesn't mean the phone doesn't swap at all.

Is the /dbdata on the same physical device as the other stuff? The concept I was responding to was the suggestion that the slowdowns are caused by the OS trying to read an apk to open it while messing with swap on the same physical device at the same time. Are there two separate sets of memory in the SGS - I was under the impression that there was just one big 8GB chip partitioned out to the ROM and internal sdcard? I've only had the phone 36 hours, still trying to get up to speed on it.

This is a complete list of all block devices in the 8GB SGS (I see no reason as to why it would be any different on the 16GB, except perhaps for more sd-devices obviously. :) )

Block devices

1 ramdisk

259 blkext

7 loop

8 sd - 512MB SD FlashROM

65 sd - 512MB SD FlashROM

66 sd - 512MB SD FlashROM

67 sd - 512MB SD FlashROM

68 sd - 512MB SD FlashROM

69 sd - 512MB SD FlashROM

70 sd - 512MB SD FlashROM

71 sd - 512MB SD FlashROM

128 sd - 512MB SD FlashROM

129 sd - 512MB SD FlashROM

130 sd - 512MB SD FlashROM

131 sd - 512MB SD FlashROM

132 sd - 512MB SD FlashROM

133 sd - 512MB SD FlashROM

134 sd - 512MB SD FlashROM

135 sd - 512MB SD FlashROM

137 bml - 512MB other ROM

138 stl - Unknown sized other ROM (likely 512MB, but it doesn't add up to it when counting, totals 427136kB)

139 tfsr - 512MB yet another ROM

179 mmc - My microSD

(Shows quite clearly that stl is a separate physical chip and not part of the sd storage btw)

Edited by mickeko
Link to comment
Share on other sites

Guest webcrtor

Is there a way to install asphalt 5 again after doing this? I pretty much liked the game and it's only game with decent graphics so :) I still have 102mb free on dbdata but still cannot install due to low diskspace.. any solutions? thanks

Link to comment
Share on other sites

Guest suman_pal78
Try at your own risk... if things go wrong you'll need to wipe your device. I have done this and it seems to have eradicated the 'stalling' i've seen on the device...

You need to be rooted and have ADB on your PC to run these commands. If it's confirmed this helps, i'll make the process easier with an 'installer'.

Enter the following commands in adb on your PC with your device attached (rooted, with USB debugging enabled):

adb shell

su

cp -rp /data/data /dbdata

mv /data/data /data/data.bak

ln -s /dbdata/data /data/data

reboot

I've done this on mine, and i'm yet to see a 'stall'. Let me know how you get on!

NOTE: This basically moves the application data stuff from the internal SD to the NAND, which seems to be faster. The caveat is that the size limit for dbdata is about 130MB, so if you go over that with your app data, bad things might happen. On the plus side, we're only moving data not the apps themselves, so filling up 130MB will take a while. :)

P

so what is the final sets of command paul...you are just great!

Link to comment
Share on other sites

Guest DistortedLoop

Thanks for educating me!

Remember, I'm just working off the other guy's theory that multiple read/writes are causing the slowdown and trying to learn a bit here, so my question is, in your listing, can the phone simultaneously read/write to say your 65 sd and 68 sd devices with no performance hit?

This is a complete list of all block devices in the 8GB SGS (I see no reason as to why it would be any different on the 16GB, except perhaps for more sd-devices obviously. :) )

Block devices

1 ramdisk

259 blkext

7 loop

8 sd - 512MB SD FlashROM

65 sd - 512MB SD FlashROM

66 sd - 512MB SD FlashROM

67 sd - 512MB SD FlashROM

68 sd - 512MB SD FlashROM

69 sd - 512MB SD FlashROM

70 sd - 512MB SD FlashROM

71 sd - 512MB SD FlashROM

128 sd - 512MB SD FlashROM

129 sd - 512MB SD FlashROM

130 sd - 512MB SD FlashROM

131 sd - 512MB SD FlashROM

132 sd - 512MB SD FlashROM

133 sd - 512MB SD FlashROM

134 sd - 512MB SD FlashROM

135 sd - 512MB SD FlashROM

137 bml - 512MB other ROM

138 stl - Unknown sized other ROM (likely 512MB, but it doesn't add up to it when counting, totals 427136kB)

139 tfsr - 512MB yet another ROM

179 mmc - My microSD

(Shows quite clearly that stl is a separate physical chip and not part of the sd storage btw)

Link to comment
Share on other sites

Guest Kilack

anyone worked out a way to remount the partitions at startup to set the flags ,nosuid,noatim.

Seems amazing that there isn't a way to do what seem simple things with android...

Link to comment
Share on other sites

Guest rasp
anyone worked out a way to remount the partitions at startup to set the flags ,nosuid,noatim.

Seems amazing that there isn't a way to do what seem simple things with android...

cos u will need to compile your own kernel.. LeshaK did it with his first public released zImage with root.. those rc files are in ramdisk.

Edited by rasp
Link to comment
Share on other sites

Guest us1111
anyone worked out a way to remount the partitions at startup to set the flags ,nosuid,noatim.

Seems amazing that there isn't a way to do what seem simple things with android...

Mounting happens in /init.rc, if you remount / as rw, then this should be possible?

mount -o remount,rw rootfs /

vi /init.rc

Link to comment
Share on other sites

Guest Kilack
cos u will need to compile your own kernel.. LeshaK did it with his first public released zImage with root.. those rc files are in ramdisk.

so probably its just a matter of time then for this to happen? As the phone launches in more places and gets more popular... more attention will come to it etc...

I'm patient... well a little...

thanks rasp

Link to comment
Share on other sites

Guest rasp
so probably its just a matter of time then for this to happen? As the phone launches in more places and gets more popular... more attention will come to it etc...

I'm patient... well a little...

thanks rasp

lets hope we get more dev with galaxy s.. currently, only leshak compiled a custom kernel (without even i9000 on hand - i was his beta tester.. lol) for our device, i want to try but my knowledge in android is limited, when i hv time, i will try meddling with it and see how far i can get..

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.