Jump to content

Advent Vega kernel source code now available!


Guest PaulOBrien

Recommended Posts

Been getting different things after playing a few times from game plays fine get the crash scene then resume/main menu options to play then crash then screen starts flickering (game freeze) press home button then select game from previous apps menu and game back to main menu.

The NvrmChannelSubmt failed (error=196623, SyncPointValue=5688750 message happens when this occurs think I seen that in someones gta log.

Yep .. thats the issue upping the ram resolves ... ill pm you a boot.img with 160 if you fancy testing ?

edit - well maybe not .. back to 256 to test pinball arcade

edit2 - and yes with 256 Pinball Arcade launches .. ram is the key with these new drivers i feel

Edited by Cass67
Link to comment
Share on other sites

Guest brucelee666

Yep .. thats the issue upping the ram resolves ... ill pm you a boot.img with 160 if you fancy testing ?

edit - well maybe not .. back to 256 to test pinball arcade

edit2 - and yes with 256 Pinball Arcade launches .. ram is the key with these new drivers i feel

Just PM me anything you want tested would be glad to help anyway I can.

Link to comment
Share on other sites

Just PM me anything you want tested would be glad to help anyway I can.

Cool .. ill test these things with 192 when i set that up and if that seem successful ill post it for you to beat on ... Pinball Arcade failing on 160 but loading on 256 just put the kibosh on 160gpu ram if we want full compatibility ... unless .. hmm .. 32bpp is increasing the load ?

edit - bah ..192 gives the flickery

D/NvOsDebugPrintf( 1139): NvRmChannelSubmit failed (err = 196623, SyncPointValue = 49515)

issue ... full compat needs 256 at this point ... may try undoing 32bpp to see what occurs ... unless any other suggestions appear..

Edited by Cass67
Link to comment
Share on other sites

Guest ejtagle

Cass,

Yes noticed you have now released will wait and see now if users find it fixed, last thing on this for info in "/d/cpuidle/lp2" with the parameter set to yes this file gets updated with times and percentages but with parameter set to no nothing gets updated.

Only mention incase this has to be looked at again for battery life or something, also in board-shuttle "tegra_suspend_platform_data shuttle_suspend" cpu_off_timer is set to zero looking at other boards this is usually 200 ?

Re. GPU mem on honeyice I think they had it set to 192mb

The 0 value is the minimum time to hold CPU in LPx mode... Can be changed to 200 without problems ...

Link to comment
Share on other sites

Just PM me anything you want tested would be glad to help anyway I can.

Just pm'd you a 256 cwm zip to hammer on .. be brutal with it ....

edit - if my tests with 16bpp and gpu ram are fail or other it may be we offer multiple kernel depending on what the user needs ...

Not ideal but at the moment the best i can see .. its late and im not as bright as i could be .. 512ram is limiting the s*** out of us right now ..

Edited by Cass67
Link to comment
Share on other sites

Guest brucelee666

Just pm'd you a 256 cwm zip to hammer on .. be brutal with it ....

Thanks, ufc will be finishing soon so will probably look at later today.

Not sure its just a gpu mem problem though, I installed pinball arcade and it would not play so rebooted and first thing started pinball game started and I played a few times then went back to launcher and played switch worked fine went back to pinball played again still no crash and for the last time when back to switch and it played fine.

So I am able to play these games on current mem it just seems to be whats previously been opened like browser or settings, seems more like mem not being released/cleared for other games ?

last test with pinball and switch in recent apps when and opened fruit ninja, now switch starts freezing so removed fruit ninja from recent apps and switch goes back to playing nice and pinball still working fine.

Link to comment
Share on other sites

Thanks, ufc will be finishing soon so will probably look at later today.

Not sure its just a gpu mem problem though, I installed pinball arcade and it would not play so rebooted and first thing started pinball game started and I played a few times then went back to launcher and played switch worked fine went back to pinball played again still no crash and for the last time when back to switch and it played fine.

So I am able to play these games on current mem it just seems to be whats previously been opened like browser or settings, seems more like mem not being released/cleared for other games ?

last test with pinball and switch in recent apps when and opened fruit ninja, now switch starts freezing so removed fruit ninja from recent apps and switch goes back to playing nice and pinball still working fine.

Ok .. interesting .. carveout ? 16bpp on 192 is same flicker central on clean boot .. so im not sure what both your results and mine tell us at this point ... what i do see is with 16bpp my blackscreen boot txt is clearly visible on the centre of the screen .. Im happy with that ;)

What i did notice instantly though was in 16bpp interactive performance seemed to kick some ass ... click, boom its there ...

im off to bed so ill continue at some point tomorrow .. enjoy ufc ;)

Edited by Cass67
Link to comment
Share on other sites

Guest ejtagle

Well , still looking into the WiFi problems.. Seems the ICS AOSP is heavily biased to BCM wifi chipsets, rather than Atheros ones. They are using private IOCTLs to the wifi driver, and some of them are not understood by the Atheros driver. And when i tried to compile wpa_supplicant with the requitred settings to make AR6002 work, it just does not compile ... As i know the nividia git has a working wpa_supplicant for Atheros , i will try to port the missing functions to the new wpa_supplicant used in ICS.Attached an slide show i found explaining what it is required to support Atheros AR600x in Android OS. Most parts of it still apply to ICS, but i need to fix the wpa_supplicant compilation for Atheros, otherwise, i can't apply all the required things...

Edit1: Attached the atheros version of the wpa_supplicant that the slides refer to.. I will try to port the modifications to wpa_supplicant used in ICS, but i also think the attached wpa_supplicant should work...

AR6003Android.pdf

atheros.rar

Edited by ejtagle
Link to comment
Share on other sites

I think ive resolved the game crashing issues .. its not tied specifically to GPU ram as was suspected by bruecelee666 but it is to do with ram or sorts ... The tunings in ICS all seem to be handled by the system_server, we don't do much tunings at all in init.rc so when we are playing a rather large game the system_server appears to allocate all the ram it can to the given process and never keeps enough back for the VM its running in .. causing the VM to crap out its currently running process .. so we need to force the VM to keep some back and the easiest way i can see just now is to add

sysctl -w vm.min_free_kbytes=16384

to the /system/etc/vega_postboot.sh file ... that value is one i picked out ive not looked to shrink it, maybe 8192 would work too ... but for now i have been unable to crash a game running a kernel with 128 GPU ram ...

I need to start looking at the tunings of things i think ..

But ill put this out there for the game players to try and see what comes out of it .. for me it fixes all the games i tried that crashed ... im even swapping them in and out live with some netflix and youtube for good measure ... of course they get killed when backgrounded by oom but they start again and run as they should ...

Cass

Link to comment
Share on other sites

Well , still looking into the WiFi problems.. Seems the ICS AOSP is heavily biased to BCM wifi chipsets, rather than Atheros ones. They are using private IOCTLs to the wifi driver, and some of them are not understood by the Atheros driver. And when i tried to compile wpa_supplicant with the requitred settings to make AR6002 work, it just does not compile ... As i know the nividia git has a working wpa_supplicant for Atheros , i will try to port the missing functions to the new wpa_supplicant used in ICS.Attached an slide show i found explaining what it is required to support Atheros AR600x in Android OS. Most parts of it still apply to ICS, but i need to fix the wpa_supplicant compilation for Atheros, otherwise, i can't apply all the required things...

Edit1: Attached the atheros version of the wpa_supplicant that the slides refer to.. I will try to port the modifications to wpa_supplicant used in ICS, but i also think the attached wpa_supplicant should work...

Nice doc .. Cheers

Link to comment
Share on other sites

Guest brucelee666

I think ive resolved the game crashing issues .. its not tied specifically to GPU ram as was suspected by bruecelee666 but it is to do with ram or sorts ... The tunings in ICS all seem to be handled by the system_server, we don't do much tunings at all in init.rc so when we are playing a rather large game the system_server appears to allocate all the ram it can to the given process and never keeps enough back for the VM its running in .. causing the VM to crap out its currently running process .. so we need to force the VM to keep some back and the easiest way i can see just now is to add

sysctl -w vm.min_free_kbytes=16384

to the /system/etc/vega_postboot.sh file ... that value is one i picked out ive not looked to shrink it, maybe 8192 would work too ... but for now i have been unable to crash a game running a kernel with 128 GPU ram ...

I need to start looking at the tunings of things i think ..

But ill put this out there for the game players to try and see what comes out of it .. for me it fixes all the games i tried that crashed ... im even swapping them in and out live with some netflix and youtube for good measure ... of course they get killed when backgrounded by oom but they start again and run as they should ...

Cass

Unfortunately router decided to stop working now waiting on replacement so probably wont be posting for a few days (visiting sister to post this).

Glad your now looking elsewhere as well - as the testing I have done with the boot image also has some issues with 256mb gpu, still managed to get the nvrm message reported running switch funny thing being had less processes running than I had on 128mb gpu image and it still happened - so can still crash even with larger memory.

With 256 gpu you are basically running very few processes and these get killed very quickly so not very much is left running, each time you start a new app an existing one gets killed connect up to eclipse to see effect on processes - available free ram gone from 160 odd down to about 60 as you would expect but really leaves no room for multiple apps running in background/cached.

Will carry on testing 256 for fun but will go probably go back to 128 and apply your new fix and test this, probably/hopefully by the time I get back online you may have this solved or at least a liveable for most users solution.

Link to comment
Share on other sites

Guest ejtagle

Unfortunately router decided to stop working now waiting on replacement so probably wont be posting for a few days (visiting sister to post this).

Glad your now looking elsewhere as well - as the testing I have done with the boot image also has some issues with 256mb gpu, still managed to get the nvrm message reported running switch funny thing being had less processes running than I had on 128mb gpu image and it still happened - so can still crash even with larger memory.

With 256 gpu you are basically running very few processes and these get killed very quickly so not very much is left running, each time you start a new app an existing one gets killed connect up to eclipse to see effect on processes - available free ram gone from 160 odd down to about 60 as you would expect but really leaves no room for multiple apps running in background/cached.

Will carry on testing 256 for fun but will go probably go back to 128 and apply your new fix and test this, probably/hopefully by the time I get back online you may have this solved or at least a liveable for most users solution.

We could also use the Nvhost process killer on low memory. There is a good reason for it.. The android process killer acts when there is a low main memory condition, but not when there is a low gpu memory condition. Most games use high amounts of gpu memory, but not neccesarily, big amounts of main memory. So, android lowmem killer does not detect them... and does not remove them. The idea behind the low memory killer is to "suspend" background processes to allow foreground processes to run...

Link to comment
Share on other sites

Guest wooshy1

We could also use the Nvhost process killer on low memory. There is a good reason for it.. The android process killer acts when there is a low main memory condition, but not when there is a low gpu memory condition. Most games use high amounts of gpu memory, but not neccesarily, big amounts of main memory. So, android lowmem killer does not detect them... and does not remove them. The idea behind the low memory killer is to "suspend" background processes to allow foreground processes to run...

This is a good idea thanks for the tip on the gpu memory usage

cat /sys/kernel/debug/nvmap/generic-0/clients

It seems the stock browser uses loads of gpu ram in most cases I have seen it using in excess of 140MB on its own.

Link to comment
Share on other sites

Guest ejtagle

This is a good idea thanks for the tip on the gpu memory usage

cat /sys/kernel/debug/nvmap/generic-0/clients

It seems the stock browser uses loads of gpu ram in most cases I have seen it using in excess of 140MB on its own.

And try any flash based web page or game to see it skyrocket ;)

Link to comment
Share on other sites

Guest BillyBobJoe

Ed & Cass,

I have had a chance to have a look at the latest release of VegaICS, looks great and getting very stable. A couple of things to look at:

When trying to use Skype everyone’s voice drops an octave or two, which is funny at first but not usable. Seems like it may be related to the HDMI audio problems from earlier were the sample rate was changed to 48k. (See log below). There is reference to the audio_hw.c function “adev_get_input_buffer_size”, never seen that before after using many other apps.

When plugging in USB drives they do not appear as USB Drive as in the init.*.rc files but as mnt/usb1 etc as did in VegaComb which is fine. I have had keyboard, mouse and USB drive all plugged and working so all seems well there. May want to remove the USB Drive mount reference.

It’s getting to the point where you should be thinking about a Beta release, IMHO.

Billy..

PS Switched to 120 dpi, wow. Loving it best ROM to date

Billy..

PS Switched to 120 dpi, wow. Loving it best ROM to date

V/com.skype.qz( 1016):

V/com.skype.qz( 1016): android signature:

V/com.skype.qz( 1016): system os_version:15-REL package_code_path:/data/app/com.skype.raider-1.apk package_name:com.skype.raider lib_dir:/data/data/com.skype.raider/lib resource_dir:/data/app/com.skype.raider-1.apk files_dir:/data/data/com.skype.raider/files tmp_dir:/data/data/com.skype.raider/cache

V/com.skype.qz( 1016): environment root_dir:/system data_dir:/data download_dir:/cache external_storage:/mnt/sdcard

V/com.skype.qz( 1016): cpu cpu_abi:armeabi-v7a processors:2

V/com.skype.qz( 1016): hardware

V/com.skype.qz( 1016): board:ventana

V/com.skype.qz( 1016): brand:Advent

V/com.skype.qz( 1016): product:VegaICS

V/com.skype.qz( 1016): model:Vega

V/com.skype.qz( 1016): manufacturer:NVIDIA

V/com.skype.qz( 1016): device:ventana

V/com.skype.qz( 1016): display:ventana-userdebug 4.0.3 IML74K eng.root.20120118.180722 test-keys

V/com.skype.qz( 1016): fingerprint:generic/ventana/ventana:4.0.3/IML74K/eng.root.20120118.180722:userdebug/test-keys host:TP user:Cass tags:test-keys type:userdebug

V/com.skype.qz( 1016):

V/com.skype.qz( 1016): $cat /proc/cpuinfo

V/com.skype.qz( 1016): Processor : ARMv7 Processor rev 0 (v7l)

V/com.skype.qz( 1016): processor : 0

V/com.skype.qz( 1016): BogoMIPS : 1987.37

V/com.skype.qz( 1016):

V/com.skype.qz( 1016): processor : 1

V/com.skype.qz( 1016): BogoMIPS : 1987.37

V/com.skype.qz( 1016):

V/com.skype.qz( 1016): Features : swp half thumb fastmult vfp edsp thumbee vfpv3 vfpv3d16

V/com.skype.qz( 1016): CPU implementer : 0x41

V/com.skype.qz( 1016): CPU architecture: 7

V/com.skype.qz( 1016): CPU variant : 0x1

V/com.skype.qz( 1016): CPU part : 0xc09

V/com.skype.qz( 1016): CPU revision : 0

V/com.skype.qz( 1016):

V/com.skype.qz( 1016): Hardware : harmony

V/com.skype.qz( 1016): Revision : 0000

V/com.skype.qz( 1016): Serial : 0000000000000000

V/com.skype.qz( 1016):

V/com.skype.qz( 1016):

D/dalvikvm( 1016): GC_CONCURRENT freed 291K, 7% free 6891K/7367K, paused 3ms+3ms

W/com.skype.be( 1016): Creating new bundle since view is null!

E/com.skype.ui.widget.ViewAnimator( 1016): done handling the 'nothing showing' situation:android.widget.RelativeLayout

D/dalvikvm( 1016): Trying to load lib /data/data/com.skype.raider/lib/libpcmhost_skype.so 0x41009310

D/dalvikvm( 1016): Added shared lib /data/data/com.skype.raider/lib/libpcmhost_skype.so 0x41009310

V/SID ( 1016): Connect: /tmp/pcm_from_skypekit_key, server: 1, timeout: -1

V/SID ( 1016): ServerConnect: listen

V/SID ( 1016): ServerConnect: Poll

D/audio_hw_primary( 95): adev_get_input_buffer_size: sample_rate: 48000, format: 1, channel_count:1

D/audio_hw_primary( 95): check_input_parameters: rate:48000, format:1, count:1

D/audio_hw_primary( 95): get_input_buffer_size: rate:48000, format:1, count:1

D/audio_hw_primary( 95): check_input_parameters: rate:48000, format:1, count:1

Link to comment
Share on other sites

We could also use the Nvhost process killer on low memory. There is a good reason for it.. The android process killer acts when there is a low main memory condition, but not when there is a low gpu memory condition. Most games use high amounts of gpu memory, but not neccesarily, big amounts of main memory. So, android lowmem killer does not detect them... and does not remove them. The idea behind the low memory killer is to "suspend" background processes to allow foreground processes to run...

Yes .. its time to look at tuning this thing and managing what we have, right now we run on what stock AOSP gives us plus the Ventana rc files .. from what i can see those rely on the system_manager to handle everything, which so far has not done so well on Vega type hardware ... The 16mb sysctl command seems to make the games work ok without crashing using 128 gpu ram, so this is good ... I just have to look into how ICS prefers to be managed and the best way to go about it rather than add the sysprop values to the rc files .. could be we have to do similar commands to VC .. but for now it seems stable with that value and the removal of lp2idle.. Will give us some time to find the proper values and look at what else needs looked at ...

@Billy .. ill add the 48kz for audio and see what occurs with skype ... cant remember the reason why we moved to 44k in the first place .. was so long ago ...

@Billy Beta will come later when there is no more surprises like what we have had since A3 has been released, stability is key ;)

Edited by Cass67
Link to comment
Share on other sites

Well , still looking into the WiFi problems.. Seems the ICS AOSP is heavily biased to BCM wifi chipsets, rather than Atheros ones. They are using private IOCTLs to the wifi driver, and some of them are not understood by the Atheros driver. And when i tried to compile wpa_supplicant with the requitred settings to make AR6002 work, it just does not compile ... As i know the nividia git has a working wpa_supplicant for Atheros , i will try to port the missing functions to the new wpa_supplicant used in ICS.Attached an slide show i found explaining what it is required to support Atheros AR600x in Android OS. Most parts of it still apply to ICS, but i need to fix the wpa_supplicant compilation for Atheros, otherwise, i can't apply all the required things...

Edit1: Attached the atheros version of the wpa_supplicant that the slides refer to.. I will try to port the modifications to wpa_supplicant used in ICS, but i also think the attached wpa_supplicant should work...

Ill have a look at this driver and see what occurs when / if it compiles ;)

Link to comment
Share on other sites

Guest BillyBobJoe

We could also use the Nvhost process killer on low memory. There is a good reason for it.. The android process killer acts when there is a low main memory condition, but not when there is a low gpu memory condition. Most games use high amounts of gpu memory, but not neccesarily, big amounts of main memory. So, android lowmem killer does not detect them... and does not remove them. The idea behind the low memory killer is to "suspend" background processes to allow foreground processes to run...

Ed you may want to have a look at the omm settings, I noted the change that has made and the current setting has been depreciated.

billy..

Link to comment
Share on other sites

Ed you may want to have a look at the omm settings, I noted the change that has made and the current setting has been depreciated.

billy..

Yeah it appears to be but seems omm_adj still is in use .. it retains a value to be used in the current env as far as i can see..

Link to comment
Share on other sites

Guest BillyBobJoe

Yeah it appears to be but seems omm_adj still is in use .. it retains a value to be used in the current env as far as i can see..

That's ok then, so the other option is to go at the minfree file and make some changes. Push one end even higher and the other end lower. Not sure how far you would want to go but some poeple have been known to reach 100mb.

Could cut the 5300 down to 2048 and the other side 14697 to 24576 (96mb) ???

Billy..

Link to comment
Share on other sites

That's ok then, so the other option is to go at the minfree file and make some changes. Push one end even higher and the other end lower. Not sure how far you would want to go but some poeple have been known to reach 100mb.

Could cut the 5300 down to 2048 and the other side 14697 to 24576 (96mb) ???

Billy..

Yeah im looking into that stuff just now .. im not sure how low we should go .. really im waiting on feedback of other issues as to how the sysctl entry has done ... so far no other complaints ...

will get more feedback i guess now i pushed an update 2 with that fix..

Edited by Cass67
Link to comment
Share on other sites

Well , still looking into the WiFi problems.. Seems the ICS AOSP is heavily biased to BCM wifi chipsets, rather than Atheros ones. They are using private IOCTLs to the wifi driver, and some of them are not understood by the Atheros driver. And when i tried to compile wpa_supplicant with the requitred settings to make AR6002 work, it just does not compile ... As i know the nividia git has a working wpa_supplicant for Atheros , i will try to port the missing functions to the new wpa_supplicant used in ICS.Attached an slide show i found explaining what it is required to support Atheros AR600x in Android OS. Most parts of it still apply to ICS, but i need to fix the wpa_supplicant compilation for Atheros, otherwise, i can't apply all the required things...

Edit1: Attached the atheros version of the wpa_supplicant that the slides refer to.. I will try to port the modifications to wpa_supplicant used in ICS, but i also think the attached wpa_supplicant should work...

seems this is not a simple mm or make .. need to look to see what this is missing for ics and fix ... already had to add the version of android, now its bitching about headers missing .. il get back on this when i figure it out ;)

Link to comment
Share on other sites

Guest ejtagle

seems this is not a simple mm or make .. need to look to see what this is missing for ics and fix ... already had to add the version of android, now its bitching about headers missing .. il get back on this when i figure it out ;)

Well, i am working on porting support for Atheros AR6000 to the wpa_supplicant_8. Compared to the 6.x version, 8.x version relies on an external library to support the AR600x kernel driver when using the WEXT supplicant driver (And that is the driver we should use, the most compatible one with the IOCTLS in the AR600x kernel driver).

That external library, as you could realize now, is not part of AOSP, and seems Google wrote a version for the BCM wifi driver, but none for the Atheros. This library is the responsible for enumerating available networks, reporting signal strength, and to some extent , associating to wifi networks.

We are using right now the external library that targets BCM, instead of the AR600x lib that we don't have, so it is expected that some ioctls will fail and the Wifi association and enumeration could be lousy... ;)

The reason that i want wpa_supplicant_8 to work with AR600x, is not only because ICS will probably work better with it, but also because of the Access Point mode ... The tablet, the hw, and ICS has the ability to share an Internet connection (or even create an AdHoc network), and to support that mode, we need the hostapd daemon, the dhcpd daemon and a small modification to the SoftAp system library (netd) to switch the AR600x mode to Host ... I have all framework related modifications done (mostly based on Cyanogen Gingerbread sources, but ported to ICS), and i am still working on the external library to support the AR600x ... It is nearly done (the external library functions can be extracted from the atheros wpa supplicant 6.x withut too much trouble) ... So, as soon as i end the process, i'll post the patch.

And i am still also working on RIL to support Huawei 3G modem... Also pretty advenced, but not finished yet. 3G requires pppd to work, as that is the only way to use the Huawei module making it support a transparent IP link..

Edited by ejtagle
Link to comment
Share on other sites

Well, i am working on porting support for Atheros AR6000 to the wpa_supplicant_8. Compared to the 6.x version, 8.x version relies on an external library to support the AR600x kernel driver when using the WEXT supplicant driver (And that is the driver we should use, the most compatible one with the IOCTLS in the AR600x kernel driver).

That external library, as you could realize now, is not part of AOSP, and seems Google wrote a version for the BCM wifi driver, but none for the Atheros. This library is the responsible for enumerating available networks, reporting signal strength, and to some extent , associating to wifi networks.

We are using right now the external library that targets BCM, instead of the AR600x lib that we don't have, so it is expected that some ioctls will fail and the Wifi association and enumeration could be lousy... ;)

The reason that i want wpa_supplicant_8 to work with AR600x, is not only because ICS will probably work better with it, but also because of the Access Point mode ... The tablet, the hw, and ICS has the ability to share an Internet connection (or even create an AdHoc network), and to support that mode, we need the hostapd daemon, the dhcpd daemon and a small modification to the SoftAp system library (netd) to switch the AR600x mode to Host ... I have all framework related modifications done (mostly based on Cyanogen Gingerbread sources, but ported to ICS), and i am still working on the external library to support the AR600x ... It is nearly done (the external library functions can be extracted from the atheros wpa supplicant 6.x withut too much trouble) ... So, as soon as i end the process, i'll post the patch.

And i am still also working on RIL to support Huawei 3G modem... Also pretty advenced, but not finished yet. 3G requires pppd to work, as that is the only way to use the Huawei module making it support a transparent IP link..

Ok, cheers .. ill not bother looking at the source you posted, ill leave that to your done ;)

pppd, hmm that will need a code change on the android side before that will work ok, no ?

Cheers

Cass

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.