Jump to content

Advent Vega kernel source code now available!


Guest PaulOBrien

Recommended Posts

Guest ejtagle

This is great. I really hate nvec :D

I want to make some snapshot of the status of our work, what is working and what not:

1) HW acceleration. Works, flash included.

2) Wifi, works.

3) BT, works at linux level (hci0 up) but dont detected by android.

4) SDcard, works, but fixing some bugs

5) Camera, works at linux level, but not detected by android. Maybe the hardest part...

6) Rotation, doesnt work, but no one try to fix it, so maybe an easy task

7) Reboot, will work :P (then we will have access to CWM)

8) GSM and GPS may work, rebel made some test and seems to work.

We are choosing the best image for start with (Transformer, Iconia, Xoom, etc.)

Corvus.

The autorotation can easily be solved. The accelerometer driver exports its data as an standard linux device input event.. All we need is a library that reads them. And that library is present inside the epad-US8445.zip file, as system\lib\hw\sensors.tegra.so . The only difference is that the library expects the device to be called 'accelerometer_tegra' but the current accelerometer driver is exporting it as 'accelerometer' . So, either we could binary edit the library and rename 'accelerometer_tegra' to just 'accelerometer' or we could change the accelerometer to export its name as 'accelerometer_tegra' ... You choose ;) -- Perhaps, we will also have to rotate a bit the accelerometer axis... Let's do it right this time, and that way we won't need the 'game mode' 2.2 android had :)

I also hate NvEC ... Luckily, system stability does not depend on it.. ;)

I will probably change the power management driver of the bluetooth so it also forces the wlan to be powered up when the bluetooth is powered up. No user level api changes. Just an internal modification here.

It's not ok at all to just sit tight and wait. I will release the ROM I have built based on everything done so far soon.

It's enough that google doesn't release the HC sources. I will do all I can to share as much as possible.

We're supposed to stick it to the man and work together to get what Google & their buddies don't want us to. Sharing is the key and I will do my part.

Give a little time... We are still smoothing rough edges here... Most are trivial to fix, but some add to the final user experience quite a bit... This will eventually be released, but we try to make the result enjoyable and usable :)

I just checked it out myself and it looks like there are some memory leaks somewhere. I still have to investigate it.

On a fresh boot with just one megavideo video played in Opera, free memory in "running apps" went down to 80-90MB. It was somewhat higher (went to 150, dropped to 90 again in one minute) after flushing Opera which was taking 62MB of RAM.

I think something is terribly wrong or leaky as almost nothing was cached and I found no memory hogs in ps afterwards!

update: memtotal is at 235836 instead of 365964 for me, something is wrong with the splitting of memory for the GPU, it might be just the kernel I built

It would be fair to explain the way this main memory versus gpu memory thing is working in the .36 kernel. NVidia kernels have two modes of operation... One of them is a fixed split between the main memory and GPU memory. That was the way the original .32 kernel worked. They program an specific GPU register with that limit, and from that point on, all the memory below that limit can only be used as main memory, and from that limit above, it only can be used as GPU memory.

But, the new kernel .36 supports not only the old split model, but a new mixed model, where there is no separation between GPU mem and main memory. All HC kernels seems to be using the old model, but, due to the lack of memory of the P10AN01, i thought the mixed model is closer would adapt better, in the hope of trying to share the memory and just allocate GPU memory only if needed.

On the .36 kernel we are working , we are using the mixed memory model. That is why you SHOULD NOT specify at the command line just 386MB... Don't do that! -- Otherwise, the missing memory won't be used at all. GPU memory is allocated from the linux memory pool.

What i have to find out yet (and i think it is not implemented by the NVidia carveout allocator kernel driver .. ) is a way to make the NVidia kernel allocate memory on demand, rather than allocating it at startup, as it does currently (i checked the code... :( )

Well... still working on all these things... I will take a look at the logs for NvEC now :)

Eduardo

Link to comment
Share on other sites

Guest the_corvus

The autorotation can easily be solved. The accelerometer driver exports its data as an standard linux device input event.. All we need is a library that reads them. And that library is present inside the epad-US8445.zip file, as system\lib\hw\sensors.tegra.so . The only difference is that the library expects the device to be called 'accelerometer_tegra' but the current accelerometer driver is exporting it as 'accelerometer' . So, either we could binary edit the library and rename 'accelerometer_tegra' to just 'accelerometer' or we could change the accelerometer to export its name as 'accelerometer_tegra' ... You choose ;) -- Perhaps, we will also have to rotate a bit the accelerometer axis... Let's do it right this time, and that way we won't need the 'game mode' 2.2 android had :)

-----------------------------------------------------

On the .36 kernel we are working , we are using the mixed memory model. That is why you SHOULD NOT specify at the command line just 386MB... Don't do that! -- Otherwise, the missing memory won't be used at all. GPU memory is allocated from the linux memory pool.

What i have to find out yet (and i think it is not implemented by the NVidia carveout allocator kernel driver .. ) is a way to make the NVidia kernel allocate memory on demand, rather than allocating it at startup, as it does currently (i checked the code... :( )

Well... still working on all these things... I will take a look at the logs for NvEC now :)

Eduardo

I will test the accel lib right now... :P i will edit it, much better that compiling kernel again :D

About commandline:

This is the actual comand line that is passed to kernel:

mem=448M@0M nvmem=64M@448M vmalloc=192M video=tegrafb erbose .console=tty0 usbcore.old_scheme_first=1 tegraboot=nand mtdparts=tegra_nand:2048K@6784K(misc),5120K@9344K(recovery),8192K@14976K(boot),151424K@23680K(system),32768K@175616K(cache),4096K@208896K(staging),310272K@213504K(userdata)

Is bootloader the one that put all this info, and we only can change values for mem, nvmem and vmalloc.

Could you say what values are the correct one?

Corvus.

Link to comment
Share on other sites

Guest the_corvus

Ok.

Tested with 96M...

Youtube works OK, Megavideo SD works OK, Megavideo HD, some works, some not.

I get always a bunch of messages in dmesg:



<6>[  228.300576] avp_lib: Successfully unloaded 'nvmm_service.axf'

<6>[  228.340598] avp_lib: Successfully unloaded 'nvmm_manager.axf'

<6>[  249.433717] avp_lib: Successfully loaded library nvmm_manager.axf (lib_id=115cd8)

<6>[  249.448628] avp_lib: Successfully loaded library nvmm_service.axf (lib_id=117ae0)

<6>[  249.763716] avp_lib: Successfully loaded library nvmm_h264dec.axf (lib_id=119950)

<4>[  273.754250] AR6000 Neighbor Report Event

<4>[  273.754344] bssid 00:24:01:6c:73:09 

<4>[  278.026789] process_disconnect_locked: got disconnect for unknown port d0637880

<6>[  278.060580] avp_lib: Successfully unloaded 'nvmm_h264dec.axf'

<6>[  278.100548] avp_lib: Successfully unloaded 'nvmm_service.axf'

<6>[  278.140763] avp_lib: Successfully unloaded 'nvmm_manager.axf'

<6>[  299.591651] avp_lib: Successfully loaded library nvmm_manager.axf (lib_id=115cd8)

<3>[  299.600533] avp_node_try_connect: can't connect to 'NVMM_MANAGER_SRV'

<6>[  299.633373] avp_lib: Successfully loaded library nvmm_service.axf (lib_id=117ae0)

<3>[  299.640529] avp_node_try_connect: can't connect to 'laaaaaaa+'

<6>[  299.695974] avp_lib: Successfully loaded library nvmm_h264dec.axf (lib_id=119950)

<4>[  302.632555] process_disconnect_locked: got disconnect for unknown port d06379c0

<6>[  302.670563] avp_lib: Successfully unloaded 'nvmm_h264dec.axf'

<6>[  302.710549] avp_lib: Successfully unloaded 'nvmm_service.axf'

<6>[  302.750567] avp_lib: Successfully unloaded 'nvmm_manager.axf'

<6>[  303.526078] avp_lib: Successfully loaded library nvmm_manager.axf (lib_id=115cd8)

<6>[  303.538720] avp_lib: Successfully loaded library nvmm_service.axf (lib_id=117ae0)

<3>[  303.548274] avp_node_try_connect: can't connect to 'oaaaaaaa+'

<6>[  303.592978] avp_lib: Successfully loaded library nvmm_h264dec.axf (lib_id=119950)

<4>[  308.265513] process_disconnect_locked: got disconnect for unknown port c0f716c0

<6>[  308.300550] avp_lib: Successfully unloaded 'nvmm_h264dec.axf'

<6>[  308.340575] avp_lib: Successfully unloaded 'nvmm_service.axf'

<6>[  308.380543] avp_lib: Successfully unloaded 'nvmm_manager.axf'

<4>[  335.707665] AR6000 Neighbor Report Event

<4>[  335.707758] bssid 00:24:01:6c:73:09 

<6>[  388.901163] avp_lib: Successfully loaded library nvmm_manager.axf (lib_id=115cd8)

<3>[  388.910639] avp_node_try_connect: can't connect to 'NVMM_MANAGER_SRV'

<6>[  388.942790] avp_lib: Successfully loaded library nvmm_service.axf (lib_id=117ae0)

<3>[  388.950541] avp_node_try_connect: can't connect to 'raaaaaaa+'

<6>[  389.028117] avp_lib: Successfully loaded library nvmm_h264dec.axf (lib_id=119950)

<4>[  399.196686] AR6000 Neighbor Report Event

<4>[  399.196722] bssid 00:24:01:6c:73:09

With 96M i get a free android memory of +170M at boot, but it decreases fast...150 stable...

Corvus.

Link to comment
Share on other sites

Guest newbe5

Eduardo, we have GFX memory set in kernel, setting to 96mb right now. You are saying that this is incorrect? We should set no hard vmem at all and have it allocate dynamically? Would this actually work?

Or, we set the MAX memory in the kernel as usual, and do not set a cmdline with memory mapping to allow it to happen dynamically? But the cmdline is also passed by the bootloader? So how can you get around this? Sorry, but I have never seen memory allocation in this way, so I do not understand how it works :P

newbe5

Edited by newbe5
Link to comment
Share on other sites

Guest ejtagle

Ok.

Tested with 96M...

Youtube works OK, Megavideo SD works OK, Megavideo HD, some works, some not.

I get always a bunch of messages in dmesg:



<6>[  228.300576] avp_lib: Successfully unloaded 'nvmm_service.axf'

<6>[  228.340598] avp_lib: Successfully unloaded 'nvmm_manager.axf'

<6>[  249.433717] avp_lib: Successfully loaded library nvmm_manager.axf (lib_id=115cd8)

<6>[  249.448628] avp_lib: Successfully loaded library nvmm_service.axf (lib_id=117ae0)

<6>[  249.763716] avp_lib: Successfully loaded library nvmm_h264dec.axf (lib_id=119950)

<4>[  273.754250] AR6000 Neighbor Report Event

<4>[  273.754344] bssid 00:24:01:6c:73:09 

<4>[  278.026789] process_disconnect_locked: got disconnect for unknown port d0637880

<6>[  278.060580] avp_lib: Successfully unloaded 'nvmm_h264dec.axf'

<6>[  278.100548] avp_lib: Successfully unloaded 'nvmm_service.axf'

<6>[  278.140763] avp_lib: Successfully unloaded 'nvmm_manager.axf'

<6>[  299.591651] avp_lib: Successfully loaded library nvmm_manager.axf (lib_id=115cd8)

<3>[  299.600533] avp_node_try_connect: can't connect to 'NVMM_MANAGER_SRV'

<6>[  299.633373] avp_lib: Successfully loaded library nvmm_service.axf (lib_id=117ae0)

<3>[  299.640529] avp_node_try_connect: can't connect to 'laaaaaaa+'

<6>[  299.695974] avp_lib: Successfully loaded library nvmm_h264dec.axf (lib_id=119950)

<4>[  302.632555] process_disconnect_locked: got disconnect for unknown port d06379c0

<6>[  302.670563] avp_lib: Successfully unloaded 'nvmm_h264dec.axf'

<6>[  302.710549] avp_lib: Successfully unloaded 'nvmm_service.axf'

<6>[  302.750567] avp_lib: Successfully unloaded 'nvmm_manager.axf'

<6>[  303.526078] avp_lib: Successfully loaded library nvmm_manager.axf (lib_id=115cd8)

<6>[  303.538720] avp_lib: Successfully loaded library nvmm_service.axf (lib_id=117ae0)

<3>[  303.548274] avp_node_try_connect: can't connect to 'oaaaaaaa+'

<6>[  303.592978] avp_lib: Successfully loaded library nvmm_h264dec.axf (lib_id=119950)

<4>[  308.265513] process_disconnect_locked: got disconnect for unknown port c0f716c0

<6>[  308.300550] avp_lib: Successfully unloaded 'nvmm_h264dec.axf'

<6>[  308.340575] avp_lib: Successfully unloaded 'nvmm_service.axf'

<6>[  308.380543] avp_lib: Successfully unloaded 'nvmm_manager.axf'

<4>[  335.707665] AR6000 Neighbor Report Event

<4>[  335.707758] bssid 00:24:01:6c:73:09 

<6>[  388.901163] avp_lib: Successfully loaded library nvmm_manager.axf (lib_id=115cd8)

<3>[  388.910639] avp_node_try_connect: can't connect to 'NVMM_MANAGER_SRV'

<6>[  388.942790] avp_lib: Successfully loaded library nvmm_service.axf (lib_id=117ae0)

<3>[  388.950541] avp_node_try_connect: can't connect to 'raaaaaaa+'

<6>[  389.028117] avp_lib: Successfully loaded library nvmm_h264dec.axf (lib_id=119950)

<4>[  399.196686] AR6000 Neighbor Report Event

<4>[  399.196722] bssid 00:24:01:6c:73:09

With 96M i get a free android memory of +170M at boot, but it decreases fast...150 stable...

Corvus.

The following items are plainly ignored right now... Let's go one by one:

mem=448M@0M

This kernel command line argument is parsed by the kernel, but then it is overriden by the shuttle initialization routines, as it was done even on .32 kernels... It would be easy to let the kernel use that value... But, do we want this ?

nvmem=64M@448M

This kernel command line argument was parsed by the .32 kernel, now it is not used anymore. We could parse and use it if we wanted to, but... do we want this ? (remember, most of those args are passed by the bootloader itself..)

tegraboot=nand . Not parsed by the .36 kernel. Not needed at all ;)

Regards,

Eduardo

Link to comment
Share on other sites

Guest the_corvus

I undestand now... but then... now kernel is taking all memory and share it with gpu and the rest automaticly? We can change the amount of ram for GPU,or what are we changing when use SHUTTLE_GPU_MEM_SIZE?

Resuming, we need to know how can we tweak memory, because now with 96M that is our best approach for flash video, it get without memory really fast. I know that we only have 512Mb, but if Vegacomb can do it, why can we?

Corvus.

Link to comment
Share on other sites

Guest ejtagle

I undestand now... but then... now kernel is taking all memory and share it with gpu and the rest automaticly? We can change the amount of ram for GPU,or what are we changing when use SHUTTLE_GPU_MEM_SIZE?

Resuming, we need to know how can we tweak memory, because now with 96M that is our best approach for flash video, it get without memory really fast. I know that we only have 512Mb, but if Vegacomb can do it, why can we?

Corvus.

Yes, changing the SHUTTLE_GPU_MEM_SIZE changes the amount of memory reserved to the GPU. That memory is allocated from the main memory (managed by linux) at the system startup and not freed at all. That is the way the NVidia carveout works right now (and trust me, i wish it didn't work that way). So, resuming. SHUTTLE_GPU_MEM_SIZE specifies the amount of memory exclusively reserved to the GPU. But, as that memory is reserved from the main memory linux manages, what you should not do is to reduce the main memory size to accomodate the GPU reserved memory size. That is automatically done by the kernel itself.

There's a very interesting tip here. Mount the debugfs, and there you will find an entry for the nvidia carveout driver, and a virtual file detailing the current consumption and requirements of GPU memory for the programs running at that time :D

Link to comment
Share on other sites

Guest a_appleby

The autorotation can easily be solved. The accelerometer driver exports its data as an standard linux device input event.. All we need is a library that reads them. And that library is present inside the epad-US8445.zip file, as system\lib\hw\sensors.tegra.so . The only difference is that the library expects the device to be called 'accelerometer_tegra' but the current accelerometer driver is exporting it as 'accelerometer' . So, either we could binary edit the library and rename 'accelerometer_tegra' to just 'accelerometer' or we could change the accelerometer to export its name as 'accelerometer_tegra' ... You choose ;) -- Perhaps, we will also have to rotate a bit the accelerometer axis... Let's do it right this time, and that way we won't need the 'game mode' 2.2 android had :)

I also hate NvEC ... Luckily, system stability does not depend on it.. ;)

I will probably change the power management driver of the bluetooth so it also forces the wlan to be powered up when the bluetooth is powered up. No user level api changes. Just an internal modification here.

Give a little time... We are still smoothing rough edges here... Most are trivial to fix, but some add to the final user experience quite a bit... This will eventually be released, but we try to make the result enjoyable and usable :)

It would be fair to explain the way this main memory versus gpu memory thing is working in the .36 kernel. NVidia kernels have two modes of operation... One of them is a fixed split between the main memory and GPU memory. That was the way the original .32 kernel worked. They program an specific GPU register with that limit, and from that point on, all the memory below that limit can only be used as main memory, and from that limit above, it only can be used as GPU memory.

But, the new kernel .36 supports not only the old split model, but a new mixed model, where there is no separation between GPU mem and main memory. All HC kernels seems to be using the old model, but, due to the lack of memory of the P10AN01, i thought the mixed model is closer would adapt better, in the hope of trying to share the memory and just allocate GPU memory only if needed.

On the .36 kernel we are working , we are using the mixed memory model. That is why you SHOULD NOT specify at the command line just 386MB... Don't do that! -- Otherwise, the missing memory won't be used at all. GPU memory is allocated from the linux memory pool.

What i have to find out yet (and i think it is not implemented by the NVidia carveout allocator kernel driver .. ) is a way to make the NVidia kernel allocate memory on demand, rather than allocating it at startup, as it does currently (i checked the code... :( )

Well... still working on all these things... I will take a look at the logs for NvEC now :)

Eduardo

I am working towards the same goal.

The memory allocated for the GPU needs to be limited somehow, even if it's not set to a fixed value and can be released to the main pool. The main problem we're having is that it doesn't seem to release it back to the main pool right now.

The current .36 repository from github is doing something wrong. in my case, there's only 200-ish MB of RAM available to the OS at any given time. It's quite opposite to the all shared, dynamic allocation you have mentioned.

There are some options in the display driver which can do this. One is about the defragmentation of the GPU memory and one is about releasing memory back to the main pool. I didn't get a chance to test them.

Do you think we would fix this issue if we ported all of these changes to the latest 2.6.36 tegra android kernel ? I wonder if there would be conflicting changes.

Ok.

Tested with 96M...

Youtube works OK, Megavideo SD works OK, Megavideo HD, some works, some not.

I get always a bunch of messages in dmesg:



<6>[  228.300576] avp_lib: Successfully unloaded 'nvmm_service.axf'

<6>[  228.340598] avp_lib: Successfully unloaded 'nvmm_manager.axf'

<6>[  249.433717] avp_lib: Successfully loaded library nvmm_manager.axf (lib_id=115cd8)

<6>[  249.448628] avp_lib: Successfully loaded library nvmm_service.axf (lib_id=117ae0)

<6>[  249.763716] avp_lib: Successfully loaded library nvmm_h264dec.axf (lib_id=119950)

<4>[  273.754250] AR6000 Neighbor Report Event

<4>[  273.754344] bssid 00:24:01:6c:73:09 

<4>[  278.026789] process_disconnect_locked: got disconnect for unknown port d0637880

<6>[  278.060580] avp_lib: Successfully unloaded 'nvmm_h264dec.axf'

<6>[  278.100548] avp_lib: Successfully unloaded 'nvmm_service.axf'

<6>[  278.140763] avp_lib: Successfully unloaded 'nvmm_manager.axf'

<6>[  299.591651] avp_lib: Successfully loaded library nvmm_manager.axf (lib_id=115cd8)

<3>[  299.600533] avp_node_try_connect: can't connect to 'NVMM_MANAGER_SRV'

<6>[  299.633373] avp_lib: Successfully loaded library nvmm_service.axf (lib_id=117ae0)

<3>[  299.640529] avp_node_try_connect: can't connect to 'laaaaaaa+'

<6>[  299.695974] avp_lib: Successfully loaded library nvmm_h264dec.axf (lib_id=119950)

<4>[  302.632555] process_disconnect_locked: got disconnect for unknown port d06379c0

<6>[  302.670563] avp_lib: Successfully unloaded 'nvmm_h264dec.axf'

<6>[  302.710549] avp_lib: Successfully unloaded 'nvmm_service.axf'

<6>[  302.750567] avp_lib: Successfully unloaded 'nvmm_manager.axf'

<6>[  303.526078] avp_lib: Successfully loaded library nvmm_manager.axf (lib_id=115cd8)

<6>[  303.538720] avp_lib: Successfully loaded library nvmm_service.axf (lib_id=117ae0)

<3>[  303.548274] avp_node_try_connect: can't connect to 'oaaaaaaa+'

<6>[  303.592978] avp_lib: Successfully loaded library nvmm_h264dec.axf (lib_id=119950)

<4>[  308.265513] process_disconnect_locked: got disconnect for unknown port c0f716c0

<6>[  308.300550] avp_lib: Successfully unloaded 'nvmm_h264dec.axf'

<6>[  308.340575] avp_lib: Successfully unloaded 'nvmm_service.axf'

<6>[  308.380543] avp_lib: Successfully unloaded 'nvmm_manager.axf'

<4>[  335.707665] AR6000 Neighbor Report Event

<4>[  335.707758] bssid 00:24:01:6c:73:09 

<6>[  388.901163] avp_lib: Successfully loaded library nvmm_manager.axf (lib_id=115cd8)

<3>[  388.910639] avp_node_try_connect: can't connect to 'NVMM_MANAGER_SRV'

<6>[  388.942790] avp_lib: Successfully loaded library nvmm_service.axf (lib_id=117ae0)

<3>[  388.950541] avp_node_try_connect: can't connect to 'raaaaaaa+'

<6>[  389.028117] avp_lib: Successfully loaded library nvmm_h264dec.axf (lib_id=119950)

<4>[  399.196686] AR6000 Neighbor Report Event

<4>[  399.196722] bssid 00:24:01:6c:73:09

With 96M i get a free android memory of +170M at boot, but it decreases fast...150 stable...

Corvus.

Those errors are the same for me. That is what shows up in most of the cases when an app crashes. This includes settings>audio in the ROM from newbe5.

Edited by a_appleby
Link to comment
Share on other sites

Guest ejtagle

I am working towards the same goal.

The memory allocated for the GPU needs to be limited somehow, even if it's not set to a fixed value and can be released to the main pool. The main problem we're having is that it doesn't seem to release it back to the main pool right now.

The current .36 repository from github is doing something wrong. in my case, there's only 200-ish MB of RAM available to the OS at any given time. It's quite opposite to the all shared, dynamic allocation you have mentioned.

There are some options in the display driver which can do this. One is about the defragmentation of the GPU memory and one is about releasing memory back to the main pool. I didn't get a chance to test them.

Do you think we would fix this issue if we ported all of these changes to the latest 2.6.36 tegra android kernel ? I wonder if there would be conflicting changes.

Those errors are the same for me. That is what shows up in most of the cases when an app crashes. This includes settings>audio in the ROM from newbe5.

I haven't tried to port to the latest .36 android kernel, but i guess there shouldn't be any problems... I don't know if this will fix the memory problems,though ... :(

Link to comment
Share on other sites

Guest ejtagle

I haven't tried to port to the latest .36 android kernel, but i guess there shouldn't be any problems... I don't know if this will fix the memory problems,though ... :(

Well, i have been reading the nvmap driver code, to try to figure out the way the GPU memory allocator works, and if it would be possible to share memory with the system pool ... The good news, is that it supports that working mode!

Let me explain what it is needed... You must compile the kernel with the following options enabled:

CONFIG_TEGRA_NVMAP=y

CONFIG_NVMAP_RECLAIM_UNPINNED_VM=y

-> A way to make non important graphics objects memory to be reused... Can try withou this option set

CONFIG_NVMAP_ALLOW_SYSMEM=y <-- The important one. Allow the GPU to allocate from system memory GPU memory blocks!

# CONFIG_NVMAP_HIGHMEM_ONLY is not set <-- do not set it, otherwise you limit the kind of blocks (address) the GPU can accept

# CONFIG_NVMAP_CARVEOUT_KILLER is not set <-- As it says, kills the processes that are using GPU mem from least to most important, if the current process can\t reserve enough GPU memory, in order to try to reserve it

CONFIG_NVMAP_CARVEOUT_COMPACTOR=y <-- Try to defragment GPU memory allocations ... Very useful as that means bigger GPU memory blocks will be available ...

Well. the nvmap is just an specialized memory allocator for the GPU memory. The memory blocks are taken from several places: First, the carveout (this is the memory area reserved at system startup whose size is the specified by the constant SHUTTLE_GPU_MEM_SIZE and that can't be used for other purposes except GPU graphics.

If no contiguous block of the required size is found at that special area, then ,and only if the CONFIG_NVMAP_ALLOW_SYSMEM is set, the nvmap tries to allocate memory from the system and use it.

So, perhaps the best bet in P10AN01 is just to set the CONFIG_NVMAP_ALLOW_SYSMEM and set a relatively low SHUTTLE_GPU_MEM_SIZE, essentially forcing the nvmap driver to share memory with the system ;)

I thought this was an interesting fact to share... I continue working on some kernel issues; Eduardo

Edited by ejtagle
Link to comment
Share on other sites

Guest the_corvus

OK, I make some test with:

CONFIG_TEGRA_NVMAP=y

CONFIG_NVMAP_RECLAIM_UNPINNED_VM=y

CONFIG_NVMAP_ALLOW_SYSMEM=y

# CONFIG_NVMAP_HIGHMEM_ONLY is not set

CONFIG_NVMAP_CARVEOUT_KILLER=y

CONFIG_NVMAP_CARVEOUT_COMPACTOR=y

And

SHUTTLE_GPU_MEM_SIZE=64

I make too some tweaks to lowmemkiller, but i think that this will not affect.

The results are:

http://pastebin.com/nHAjq1Dn

(Be carefull... long log... :D)

Resuming:

With 64M reserved for GPU...

Youtube works, SD and HD

Megavideo SD works

Megavideo HD doesnt work, but now doesnt seem to be a buffer problem.

UPDATE:

I was downloading a movie, and go to market and tablet crashes:

In logcat:

roid.internal.view.IInputMethodClient$Stub$Proxy@40eb7248[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/skia    (  395): purging 191K from font cache [10 entries][/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GLUtils (  395): EGL ERROR - eglCreateImage() returned 0[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GLUtils (  395): after eglCreateImage() eglError (0x3003)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GLUtils (  395): EGL ERROR - eglCreateImage() returned 0[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GLUtils (  395): after eglCreateImage() eglError (0x3003)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GLUtils (  395): EGL ERROR - eglCreateImage() returned 0[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GLUtils (  395): after eglCreateImage() eglError (0x3003)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GLUtils (  395): EGL ERROR - eglCreateImage() returned 0[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GLUtils (  395): after eglCreateImage() eglError (0x3003)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GLUtils (  395): EGL ERROR - eglCreateImage() returned 0[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GLUtils (  395): after eglCreateImage() eglError (0x3003)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GLUtils (  395): EGL ERROR - eglCreateImage() returned 0[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GLUtils (  395): after eglCreateImage() eglError (0x3003)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GLUtils (  395): EGL ERROR - eglCreateImage() returned 0[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GLUtils (  395): after eglCreateImage() eglError (0x3003)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GLUtils (  395): EGL ERROR - eglCreateImage() returned 0[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GLUtils (  395): after eglCreateImage() eglError (0x3003)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GLUtils (  395): EGL ERROR - eglCreateImage() returned 0[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GLUtils (  395): after eglCreateImage() eglError (0x3003)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GLUtils (  395): EGL ERROR - eglCreateImage() returned 0[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GLUtils (  395): after eglCreateImage() eglError (0x3003)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GLUtils (  395): EGL ERROR - eglCreateImage() returned 0[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GLUtils (  395): after eglCreateImage() eglError (0x3003)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GLUtils (  395): EGL ERROR - eglCreateImage() returned 0[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GLUtils (  395): after eglCreateImage() eglError (0x3003)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GLUtils (  395): EGL ERROR - eglCreateImage() returned 0[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GLUtils (  395): after eglCreateImage() eglError (0x3003)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GLUtils (  395): EGL ERROR - eglCreateImage() returned 0[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GLUtils (  395): after eglCreateImage() eglError (0x3003)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GLUtils (  395): EGL ERROR - eglCreateImage() returned 0[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GLUtils (  395): after eglCreateImage() eglError (0x3003)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/ExternalStorage(  118): getVolumeState : /mnt/sdcard[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/ExternalStorage(  118): getVolumeState : /mnt/sdcard[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/SurfaceFlinger(  118): screenshot: sw=173, sh=101, minZ=0, maxZ=21015[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]I/ActivityManager(  118): Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10200000 cmp=com.android.launcher/com.android.launcher2.Launcher } from pid 118[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/SurfaceFlinger(  118): screenshot: result = OK[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/WindowManager(  118): readLidState, sw:0[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/WindowManager(  118): adjustConfigurationLw, config:{ scale=1.0 imsi=0/0 loc=null touch=3 keys=2/1/2 nav=1/1 orien=L layout=0x10000024 uiMode=0x0} mLidOpen:0 config.hardKeyboardHidden:2[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/Tablet/NotificationPanel(  173): notificationCount=4[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]W/GraphicBufferAllocator(  118): alloc(1024, 564, 1, 00000300, ...) failed -12 (Out of memory)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GraphicBufferAllocator(  118): Allocated buffers:[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GraphicBufferAllocator(  118):   0x23a760: 3518.75 KiB | 1569 (1600) x 1126 |        4 | 0x00000133[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GraphicBufferAllocator(  118):   0x27be80:  144.00 KiB | 1024 (1024) x   36 |        2 | 0x00000133[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GraphicBufferAllocator(  118):   0x286810:  144.00 KiB | 1024 (1024) x   36 |        2 | 0x00000133[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GraphicBufferAllocator(  118):   0x2eb1b0: 2256.00 KiB | 1024 (1024) x  564 |        1 | 0x00000300[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GraphicBufferAllocator(  118):   0x3f3a58: 2256.00 KiB | 1024 (1024) x  564 |        1 | 0x00000300[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GraphicBufferAllocator(  118): Total allocated: 8318.75 KB[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GraphicBufferAllocator(  118): Nvidia Gralloc[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/SurfaceFlinger(  118): Layer::requestBuffer(this=0x1de188), index=0, w=1024, h=564 failed (Out of memory)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/Surface (  199): Surface (identity=71) requestBuffer(0, 0, 0, 1, 00000200) returned a buffer with a null handle[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/Surface (  199): getBufferLocked(0, 0, 0, 1, 00000200) failed (Out of memory)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/AndroidRuntime(  199): Shutting down VM[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]W/dalvikvm(  199): threadid=1: thread exiting with uncaught exception (group=0x40163760)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/AndroidRuntime(  199): FATAL EXCEPTION: main[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/AndroidRuntime(  199): java.lang.RuntimeException: eglMakeCurrent failed EGL_BAD_ALLOC[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/AndroidRuntime(  199): 	at android.view.HardwareRenderer$GlRenderer.createEglSurface(HardwareRenderer.java:451)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/AndroidRuntime(  199): 	at android.view.HardwareRenderer$GlRenderer.initialize(HardwareRenderer.java:340)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/AndroidRuntime(  199): 	at android.view.ViewRoot.performTraversals(ViewRoot.java:1057)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/AndroidRuntime(  199): 	at android.view.ViewRoot.handleMessage(ViewRoot.java:1950)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/AndroidRuntime(  199): 	at android.os.Handler.dispatchMessage(Handler.java:99)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/AndroidRuntime(  199): 	at android.os.Looper.loop(Looper.java:126)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/AndroidRuntime(  199): 	at android.app.ActivityThread.main(ActivityThread.java:3997)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/AndroidRuntime(  199): 	at java.lang.reflect.Method.invokeNative(Native Method)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/AndroidRuntime(  199): 	at java.lang.reflect.Method.invoke(Method.java:491)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/AndroidRuntime(  199): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/AndroidRuntime(  199): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/AndroidRuntime(  199): 	at dalvik.system.NativeStart.main(Native Method)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/SurfaceFlinger(  118): screenshot: sw=173, sh=101, minZ=0, maxZ=21010[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]W/ActivityManager(  118):   Force finishing activity com.android.launcher/com.android.launcher2.Launcher[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/SurfaceFlinger(  118): screenshot: result = OK[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]W/ActivityManager(  118):   Force finishing activity com.android.browser/.BrowserActivity[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]W/GraphicBufferAllocator(  118): alloc(435, 235, 1, 00000133, ...) failed -12 (Out of memory)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GraphicBufferAllocator(  118): Allocated buffers:[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GraphicBufferAllocator(  118):   0x23a760: 3518.75 KiB | 1569 (1600) x 1126 |        4 | 0x00000133[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GraphicBufferAllocator(  118):   0x27be80:  144.00 KiB | 1024 (1024) x   36 |        2 | 0x00000133[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GraphicBufferAllocator(  118):   0x286810:  144.00 KiB | 1024 (1024) x   36 |        2 | 0x00000133[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GraphicBufferAllocator(  118):   0x2eb1b0: 2256.00 KiB | 1024 (1024) x  564 |        1 | 0x00000300[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GraphicBufferAllocator(  118):   0x3f3a58: 2256.00 KiB | 1024 (1024) x  564 |        1 | 0x00000300[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GraphicBufferAllocator(  118): Total allocated: 8318.75 KB[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GraphicBufferAllocator(  118): Nvidia Gralloc[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/SurfaceFlinger(  118): Layer::requestBuffer(this=0x2e6f50), index=0, w=435, h=235 failed (Out of memory)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/Surface (  118): Surface (identity=72) requestBuffer(0, 0, 0, 0, 00000033) returned a buffer with a null handle[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/Surface (  118): getBufferLocked(0, 0, 0, 0, 00000033) failed (Out of memory)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/Surface (  118): dequeueBuffer failed (Out of memory)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/ViewRoot(  118): OutOfResourcesException locking surface[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/ViewRoot(  118): android.view.Surface$OutOfResourcesException[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/ViewRoot(  118): 	at android.view.Surface.lockCanvasNative(Native Method)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/ViewRoot(  118): 	at android.view.Surface.lockCanvas(Surface.java:335)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/ViewRoot(  118): 	at android.view.ViewRoot.draw(ViewRoot.java:1547)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/ViewRoot(  118): 	at android.view.ViewRoot.performTraversals(ViewRoot.java:1335)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/ViewRoot(  118): 	at android.view.ViewRoot.handleMessage(ViewRoot.java:1950)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/ViewRoot(  118): 	at android.os.Handler.dispatchMessage(Handler.java:99)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/ViewRoot(  118): 	at android.os.Looper.loop(Looper.java:126)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/ViewRoot(  118): 	at com.android.server.am.ActivityManagerService$AThread.run(ActivityManagerService.java:1390)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]W/ActivityManager(  118): Activity pause timeout for ActivityRecord{40897ee0 com.android.launcher/com.android.launcher2.Launcher}[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/WindowManager(  118): readLidState, sw:0[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/WindowManager(  118): adjustConfigurationLw, config:{ scale=1.0 imsi=0/0 loc=null touch=3 keys=2/1/2 nav=1/1 orien=L layout=0x10000024 uiMode=0x0} mLidOpen:0 config.hardKeyboardHidden:2[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]W/GraphicBufferAllocator(  118): alloc(1024, 564, 1, 00000300, ...) failed -12 (Out of memory)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GraphicBufferAllocator(  118): Allocated buffers:[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GraphicBufferAllocator(  118):   0x23a760: 3518.75 KiB | 1569 (1600) x 1126 |        4 | 0x00000133[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GraphicBufferAllocator(  118):   0x27be80:  144.00 KiB | 1024 (1024) x   36 |        2 | 0x00000133[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GraphicBufferAllocator(  118):   0x286810:  144.00 KiB | 1024 (1024) x   36 |        2 | 0x00000133[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GraphicBufferAllocator(  118):   0x2eb1b0: 2256.00 KiB | 1024 (1024) x  564 |        1 | 0x00000300[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GraphicBufferAllocator(  118):   0x3f3a58: 2256.00 KiB | 1024 (1024) x  564 |        1 | 0x00000300[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GraphicBufferAllocator(  118): Total allocated: 8318.75 KB[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GraphicBufferAllocator(  118): Nvidia Gralloc[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/SurfaceFlinger(  118): Layer::requestBuffer(this=0x35e6c0), index=0, w=1024, h=564 failed (Out of memory)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/Surface (  813): Surface (identity=73) requestBuffer(0, 0, 0, 1, 00000200) returned a buffer with a null handle[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/Surface (  813): getBufferLocked(0, 0, 0, 1, 00000200) failed (Out of memory)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/AndroidRuntime(  813): Shutting down VM[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]W/dalvikvm(  813): threadid=1: thread exiting with uncaught exception (group=0x40163760)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/AndroidRuntime(  813): FATAL EXCEPTION: main[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/AndroidRuntime(  813): java.lang.RuntimeException: eglMakeCurrent failed EGL_BAD_ALLOC[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/AndroidRuntime(  813): 	at android.view.HardwareRenderer$GlRenderer.createEglSurface(HardwareRenderer.java:451)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/AndroidRuntime(  813): 	at android.view.HardwareRenderer$GlRenderer.initialize(HardwareRenderer.java:340)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/AndroidRuntime(  813): 	at android.view.ViewRoot.performTraversals(ViewRoot.java:1057)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/AndroidRuntime(  813): 	at android.view.ViewRoot.handleMessage(ViewRoot.java:1950)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/AndroidRuntime(  813): 	at android.os.Handler.dispatchMessage(Handler.java:99)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/AndroidRuntime(  813): 	at android.os.Looper.loop(Looper.java:126)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/AndroidRuntime(  813): 	at android.app.ActivityThread.main(ActivityThread.java:3997)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/AndroidRuntime(  813): 	at java.lang.reflect.Method.invokeNative(Native Method)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/AndroidRuntime(  813): 	at java.lang.reflect.Method.invoke(Method.java:491)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/AndroidRuntime(  813): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/AndroidRuntime(  813): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/AndroidRuntime(  813): 	at dalvik.system.NativeStart.main(Native Method)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/SurfaceFlinger(  118): screenshot: sw=173, sh=101, minZ=0, maxZ=21005[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]W/ActivityManager(  118):   Force finishing activity com.google.android.finsky/.activities.MainActivity[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/SurfaceFlinger(  118): screenshot: result = OK[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]W/GraphicBufferAllocator(  118): alloc(435, 235, 1, 00000133, ...) failed -12 (Out of memory)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GraphicBufferAllocator(  118): Allocated buffers:[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GraphicBufferAllocator(  118):   0x23a760: 3518.75 KiB | 1569 (1600) x 1126 |        4 | 0x00000133[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GraphicBufferAllocator(  118):   0x27be80:  144.00 KiB | 1024 (1024) x   36 |        2 | 0x00000133[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GraphicBufferAllocator(  118):   0x286810:  144.00 KiB | 1024 (1024) x   36 |        2 | 0x00000133[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GraphicBufferAllocator(  118):   0x2eb1b0: 2256.00 KiB | 1024 (1024) x  564 |        1 | 0x00000300[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GraphicBufferAllocator(  118):   0x3f3a58: 2256.00 KiB | 1024 (1024) x  564 |        1 | 0x00000300[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GraphicBufferAllocator(  118): Total allocated: 8318.75 KB[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]D/GraphicBufferAllocator(  118): Nvidia Gralloc[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/SurfaceFlinger(  118): Layer::requestBuffer(this=0x285dd8), index=0, w=435, h=235 failed (Out of memory)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/Surface (  118): Surface (identity=74) requestBuffer(0, 0, 0, 0, 00000033) returned a buffer with a null handle[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/Surface (  118): getBufferLocked(0, 0, 0, 0, 00000033) failed (Out of memory)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/Surface (  118): dequeueBuffer failed (Out of memory)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/ViewRoot(  118): OutOfResourcesException locking surface[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/ViewRoot(  118): android.view.Surface$OutOfResourcesException[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/ViewRoot(  118): 	at android.view.Surface.lockCanvasNative(Native Method)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/ViewRoot(  118): 	at android.view.Surface.lockCanvas(Surface.java:335)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/ViewRoot(  118): 	at android.view.ViewRoot.draw(ViewRoot.java:1547)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/ViewRoot(  118): 	at android.view.ViewRoot.performTraversals(ViewRoot.java:1335)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/ViewRoot(  118): 	at android.view.ViewRoot.handleMessage(ViewRoot.java:1950)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/ViewRoot(  118): 	at android.os.Handler.dispatchMessage(Handler.java:99)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/ViewRoot(  118): 	at android.os.Looper.loop(Looper.java:126)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]E/ViewRoot(  118): 	at com.android.server.am.ActivityManagerService$AThread.run(ActivityManagerService.java:1390)[/color][/size][/font]

[font="helvetica, arial, freesans, clean, sans-serif"][size="2"][color="#4b4b4b"]W/ActivityManager(  118): Activity pause timeout for ActivityRecord{4085dd98 com.google.android.finsky/.activities.MainActivity}[/color][/size][/font]

[color=#4B4B4B][font=helvetica, arial, freesans, clean, sans-serif][size=2]

Buttons work, but screen is dead...

Corvus

Link to comment
Share on other sites

Guest the_corvus

Last test.

I play some HD videos using Moboplayer by wifi and works. (it plays 1080p with a lot of frames skipped, but plays it, and no errors in logcat or dmesg.)

So i think is not only a video mem problem, i think is more the way that flash plugin use video driver.

More test soon.

Corvus.

Link to comment
Share on other sites

Guest newbe5

Last test.

I play some HD videos using Moboplayer by wifi and works. (it plays 1080p with a lot of frames skipped, but plays it, and no errors in logcat or dmesg.)

So i think is not only a video mem problem, i think is more the way that flash plugin use video driver.

More test soon.

Corvus.

Doesn't Moboplayer use software rendering for most formats? I could be wrong there though :P The MegaVideo HD EGL errors are actually a little worrying, it might not be a memory error, could be something in the ROM itself? I'll look in to this when I can. TBH, I think that streaming HD flash from specific websites is quite a narrow audience, I don't believe that most people use their tablets for this (streaming SD, or other from youtube etc and BBC iPlayer, yes, but these do not use the same HD as MegaVideo, also I have almost always had problems with Megavideo in the past :P). At least this is a lot closer though. How much free memory are you showing now? Do we still need to remove the @380 (or whatever) as Eduardo said? Upload to me when you get chance mate and I'll do some tests :)

newbe5

Link to comment
Share on other sites

Guest a_appleby

Doesn't Moboplayer use software rendering for most formats? I could be wrong there though :P The MegaVideo HD EGL errors are actually a little worrying, it might not be a memory error, could be something in the ROM itself? I'll look in to this when I can. TBH, I think that streaming HD flash from specific websites is quite a narrow audience, I don't believe that most people use their tablets for this (streaming SD, or other from youtube etc and BBC iPlayer, yes, but these do not use the same HD as MegaVideo, also I have almost always had problems with Megavideo in the past :P). At least this is a lot closer though. How much free memory are you showing now? Do we still need to remove the @380 (or whatever) as Eduardo said? Upload to me when you get chance mate and I'll do some tests :)

newbe5

It can also be related to the ROM itself. After testing these ROMs for a while, I can tell you some don't throw the errors related to AVP, the ones which corvus mentioned.

update: I just flashed a ROM with a kernel patched up to 11.2.11 and I got random bars on the screen at boot. I'm guessing something got broken along the way.

update 2:

patches which might help:

http://nv-tegra.nvid...fa357d13d5d5011

http://nv-tegra.nvid...390f1f98bbb91c6

http://nv-tegra.nvid...bce6dc35727e9ff

http://nv-tegra.nvid...335d127840fd4a3

One of the above patches gives the strange bars on screen problem on boot.

update 3:

These two patches are ok. They should help with video streaming and issues which arise after streaming video.

http://nv-tegra.nvidia.com/gitweb/?p=linux-2.6.git;a=commit;h=22ede8940a036fed891427ef5fa357d13d5d5011

http://nv-tegra.nvidia.com/gitweb/?p=linux-2.6.git;a=commit;h=63a20cb9aef250a407d44cdf3390f1f98bbb91c6

Could we set the video memory to something like 80MB? 64MB of reserved GPU memory and those patches resulted in lower memory usage.

Edited by a_appleby
Link to comment
Share on other sites

Guest ejtagle

It can also be related to the ROM itself. After testing these ROMs for a while, I can tell you some don't throw the errors related to AVP, the ones which corvus mentioned.

update: I just flashed a ROM with a kernel patched up to 11.2.11 and I got random bars on the screen at boot. I'm guessing something got broken along the way.

update 2:

patches which might help:

http://nv-tegra.nvid...fa357d13d5d5011

http://nv-tegra.nvid...390f1f98bbb91c6

http://nv-tegra.nvid...bce6dc35727e9ff

http://nv-tegra.nvid...335d127840fd4a3

One of the above patches gives the strange bars on screen problem on boot.

update 3:

These two patches are ok. They should help with video streaming and issues which arise after streaming video.

http://nv-tegra.nvid...fa357d13d5d5011

http://nv-tegra.nvid...390f1f98bbb91c6

Could we set the video memory to something like 80MB? 64MB of reserved GPU memory and those patches resulted in lower memory usage.

We can set nearly any size we want for GPU (it should be a multiple of 4Kbytes ;) ) ... for example, you could sei it to (3 * SZ_32M)

Regards,

Eduardo

As far as i see, the "lockup" is caused by the desperation of the GPU memory compactor to free memory, but it cant , as the system is out of memory (or perhaps there is a bug in the compaction code) ;)

Link to comment
Share on other sites

Guest a_appleby

We can set nearly any size we want for GPU (it should be a multiple of 4Kbytes ;) ) ... for example, you could sei it to (3 * SZ_32M)

Regards,

Eduardo

As far as i see, the "lockup" is caused by the desperation of the GPU memory compactor to free memory, but it cant , as the system is out of memory (or perhaps there is a bug in the compaction code) ;)

The memory must be too heavily fragmented. The compactor code doesn't seem to be working as you said.

Link to comment
Share on other sites

Guest brucelee666

I don't know if this helps with the memory problem but in the "drivers/video/tegra/nvmap_heap" files you seem to be using the .c file from the latest nvidia tegra git which is dated 2011, even the android 2.6.39 is still at 2010 so does not have details on compactor.

This may not be a problem but the .h file has not been updated in rebel1 git and is still 2010 where as its 2010-2011 in nvidia git.

Don't know enough about kernel workings to say if this causes problems, but seems funny to have some files upto date and others not ?

Edit - Forget above i guess the files in rebel1 git for "nvmapheap" seem to match the dev-hc head on the nvidia git (which is not the latest nvidia head and is also different from the latest android-tegra-2.6.39 files)

Edited by brucelee666
Link to comment
Share on other sites

Guest a_appleby

We can set nearly any size we want for GPU (it should be a multiple of 4Kbytes ;) ) ... for example, you could sei it to (3 * SZ_32M)

Regards,

Eduardo

As far as i see, the "lockup" is caused by the desperation of the GPU memory compactor to free memory, but it cant , as the system is out of memory (or perhaps there is a bug in the compaction code) ;)

Eduardo, I've seen something strange.

This is meminfo with 96 MB of reserved RAM for the GPU. Total memory on boot is 384 MB

http://pastebin.com/M93aQ1C0

The kernel has 384MB of memory on boot and then it starts losing memory as follows:

96MB of RAM goes to the GPU

16MB of RAM goes framebuffers

10MB of RAM goes to other devices

Can you help? Thanks.

Link to comment
Share on other sites

Guest wooshy1

Eduardo, I've seen something strange.

This is meminfo with 96 MB of reserved RAM for the GPU. Total memory on boot is 384 MB

http://pastebin.com/M93aQ1C0

The kernel has 384MB of memory on boot and then it starts losing memory as follows:

96MB of RAM goes to the GPU

16MB of RAM goes framebuffers

10MB of RAM goes to other devices

Can you help? Thanks.

The kernel command line passed from the bootloader in the vegamodded stock 1.10 is:

mem=384M@0M nvmem=128M@384M vmalloc=256M video=tegrafb console=ttyS0,115200n8 usbcore.old_scheme_first=1 tegraboot=nand mtdparts=tegra_nand:2048K@6784K(misc),5120K@9344K(recovery),8192K@14976K(boot),151808K@23680K(system),32768K@176000K(cache),4096K@209408K(staging),309760K@214016K(userdata)

giving this memory layout:

<6>[ 0.000000] Memory: 240MB = 240MB total

<5>[ 0.000000] Memory: 235520k/235520k available, 157696k reserved, 0K highmem

<5>[ 0.000000] Virtual kernel memory layout:

<5>[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)

<5>[ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)

<5>[ 0.000000] DMA : 0xff000000 - 0xffe00000 ( 14 MB)

<5>[ 0.000000] vmalloc : 0xd8800000 - 0xf8000000 ( 504 MB)

<5>[ 0.000000] lowmem : 0xc0000000 - 0xd8000000 ( 384 MB)

<5>[ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)

<5>[ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB)

<5>[ 0.000000] .init : 0xc0008000 - 0xc0033000 ( 172 kB)

<5>[ 0.000000] .text : 0xc0033000 - 0xc0558000 (5268 kB)

<5>[ 0.000000] .data : 0xc0580000 - 0xc05c9a00 ( 295 kB)

As eduardo stated it is best to boot this .36 kernel from fastboot here is the kernel command line I have been using to boot:

mem=512M@0M vmalloc=64M video=tegrafb console=ttyS0,115200n8 usbcore.old_scheme_first=1 tegraboot=nand mtdparts=tegra_nand:2048K@6784K(misc),5120K@9344K(recovery),8192K@14976K(boot),151808K@23680K(system),32768K@176000K(cache),4096K@209408K(staging),309760K@214016K(userdata)

giving this memory layout:

<6>[ 0.000000] Memory: 416MB = 416MB total

<5>[ 0.000000] Memory: 414052k/414052k available, 110236k reserved, 0K highmem

<5>[ 0.000000] Virtual kernel memory layout:

<5>[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)

<5>[ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)

<5>[ 0.000000] DMA : 0xff000000 - 0xffe00000 ( 14 MB)

<5>[ 0.000000] vmalloc : 0xe0800000 - 0xf8000000 ( 376 MB)

<5>[ 0.000000] lowmem : 0xc0000000 - 0xe0000000 ( 512 MB)

<5>[ 0.000000] modules : 0xbf000000 - 0xc0000000 ( 16 MB)

<5>[ 0.000000] .init : 0xc0008000 - 0xc0033000 ( 172 kB)

<5>[ 0.000000] .text : 0xc0033000 - 0xc05d0000 (5748 kB)

<5>[ 0.000000] .data : 0xc05fc000 - 0xc0646060 ( 297 kB)

finally, currently the the config reserves main ram for the two framebuffers then the gpu reserves it from the reserved gpu ram aswell so we lose upto 16MB of ram, i have got round this by setting the following in board-shuttle.h

SHUTTLE_GPU_MEM_SIZE 3 * SZ_32M

SHUTTLE_FB1_MEM_SIZE 0

SHUTTLE_FB2_MEM_SIZE 0

also compile the kernel with # CONFIG_HIGHMEM is not set

as we do not have more the 1GB ram this wastes valuable ram on unnecessary register etc.

hope this helps

Edited by wooshy1
Link to comment
Share on other sites

Guest a_appleby

The kernel command line passed from the bootloader in the vegamodded stock 1.10 is:

mem=384M@0M nvmem=128M@384M vmalloc=256M video=tegrafb console=ttyS0,115200n8 usbcore.old_scheme_first=1 tegraboot=nand mtdparts=tegra_nand:2048K@6784K(misc),5120K@9344K(recovery),8192K@14976K(boot),151808K@23680K(system),32768K@176000K(cache),4096K@209408K(staging),309760K@214016K(userdata)

giving this memory layout:

<6>[ 0.000000] Memory: 240MB = 240MB total

<5>[ 0.000000] Memory: 235520k/235520k available, 157696k reserved, 0K highmem

<5>[ 0.000000] Virtual kernel memory layout:

<5>[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)

<5>[ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)

<5>[ 0.000000] DMA : 0xff000000 - 0xffe00000 ( 14 MB)

<5>[ 0.000000] vmalloc : 0xd8800000 - 0xf8000000 ( 504 MB)

<5>[ 0.000000] lowmem : 0xc0000000 - 0xd8000000 ( 384 MB)

<5>[ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)

<5>[ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB)

<5>[ 0.000000] .init : 0xc0008000 - 0xc0033000 ( 172 kB)

<5>[ 0.000000] .text : 0xc0033000 - 0xc0558000 (5268 kB)

<5>[ 0.000000] .data : 0xc0580000 - 0xc05c9a00 ( 295 kB)

As eduardo stated it is best to boot this .36 kernel from fastboot here is the kernel command line I have been using to boot:

mem=512M@0M vmalloc=64M video=tegrafb console=ttyS0,115200n8 usbcore.old_scheme_first=1 tegraboot=nand mtdparts=tegra_nand:2048K@6784K(misc),5120K@9344K(recovery),8192K@14976K(boot),151808K@23680K(system),32768K@176000K(cache),4096K@209408K(staging),309760K@214016K(userdata)

giving this memory layout:

<6>[ 0.000000] Memory: 416MB = 416MB total

<5>[ 0.000000] Memory: 414052k/414052k available, 110236k reserved, 0K highmem

<5>[ 0.000000] Virtual kernel memory layout:

<5>[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)

<5>[ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)

<5>[ 0.000000] DMA : 0xff000000 - 0xffe00000 ( 14 MB)

<5>[ 0.000000] vmalloc : 0xe0800000 - 0xf8000000 ( 376 MB)

<5>[ 0.000000] lowmem : 0xc0000000 - 0xe0000000 ( 512 MB)

<5>[ 0.000000] modules : 0xbf000000 - 0xc0000000 ( 16 MB)

<5>[ 0.000000] .init : 0xc0008000 - 0xc0033000 ( 172 kB)

<5>[ 0.000000] .text : 0xc0033000 - 0xc05d0000 (5748 kB)

<5>[ 0.000000] .data : 0xc05fc000 - 0xc0646060 ( 297 kB)

finally, currently the the config reserves main ram for the two framebuffers then the gpu reserves it from the reserved gpu ram aswell so we lose upto 16MB of ram, i have got round this by setting the following in board-shuttle.h

SHUTTLE_GPU_MEM_SIZE 3 * SZ_32M

SHUTTLE_FB1_MEM_SIZE 0

SHUTTLE_FB2_MEM_SIZE 0

also compile the kernel with # CONFIG_HIGHMEM is not set

as we do not have more the 1GB ram this wastes valuable ram on unnecessary register etc.

hope this helps

That 512@0 memory layout hangs the Vega.

Link to comment
Share on other sites

Guest newbe5

The kernel command line passed from the bootloader in the vegamodded stock 1.10 is:

mem=384M@0M nvmem=128M@384M vmalloc=256M video=tegrafb console=ttyS0,115200n8 usbcore.old_scheme_first=1 tegraboot=nand mtdparts=tegra_nand:2048K@6784K(misc),5120K@9344K(recovery),8192K@14976K(boot),151808K@23680K(system),32768K@176000K(cache),4096K@209408K(staging),309760K@214016K(userdata)

giving this memory layout:

<6>[ 0.000000] Memory: 240MB = 240MB total

<5>[ 0.000000] Memory: 235520k/235520k available, 157696k reserved, 0K highmem

<5>[ 0.000000] Virtual kernel memory layout:

<5>[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)

<5>[ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)

<5>[ 0.000000] DMA : 0xff000000 - 0xffe00000 ( 14 MB)

<5>[ 0.000000] vmalloc : 0xd8800000 - 0xf8000000 ( 504 MB)

<5>[ 0.000000] lowmem : 0xc0000000 - 0xd8000000 ( 384 MB)

<5>[ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)

<5>[ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB)

<5>[ 0.000000] .init : 0xc0008000 - 0xc0033000 ( 172 kB)

<5>[ 0.000000] .text : 0xc0033000 - 0xc0558000 (5268 kB)

<5>[ 0.000000] .data : 0xc0580000 - 0xc05c9a00 ( 295 kB)

As eduardo stated it is best to boot this .36 kernel from fastboot here is the kernel command line I have been using to boot:

mem=512M@0M vmalloc=64M video=tegrafb console=ttyS0,115200n8 usbcore.old_scheme_first=1 tegraboot=nand mtdparts=tegra_nand:2048K@6784K(misc),5120K@9344K(recovery),8192K@14976K(boot),151808K@23680K(system),32768K@176000K(cache),4096K@209408K(staging),309760K@214016K(userdata)

giving this memory layout:

<6>[ 0.000000] Memory: 416MB = 416MB total

<5>[ 0.000000] Memory: 414052k/414052k available, 110236k reserved, 0K highmem

<5>[ 0.000000] Virtual kernel memory layout:

<5>[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)

<5>[ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)

<5>[ 0.000000] DMA : 0xff000000 - 0xffe00000 ( 14 MB)

<5>[ 0.000000] vmalloc : 0xe0800000 - 0xf8000000 ( 376 MB)

<5>[ 0.000000] lowmem : 0xc0000000 - 0xe0000000 ( 512 MB)

<5>[ 0.000000] modules : 0xbf000000 - 0xc0000000 ( 16 MB)

<5>[ 0.000000] .init : 0xc0008000 - 0xc0033000 ( 172 kB)

<5>[ 0.000000] .text : 0xc0033000 - 0xc05d0000 (5748 kB)

<5>[ 0.000000] .data : 0xc05fc000 - 0xc0646060 ( 297 kB)

finally, currently the the config reserves main ram for the two framebuffers then the gpu reserves it from the reserved gpu ram aswell so we lose upto 16MB of ram, i have got round this by setting the following in board-shuttle.h

SHUTTLE_GPU_MEM_SIZE 3 * SZ_32M

SHUTTLE_FB1_MEM_SIZE 0

SHUTTLE_FB2_MEM_SIZE 0

also compile the kernel with # CONFIG_HIGHMEM is not set

as we do not have more the 1GB ram this wastes valuable ram on unnecessary register etc.

hope this helps

I'm also confused by this. Using your cmdline, it is booting and working for you?

Link to comment
Share on other sites

Guest wooshy1

I'm also confused by this. Using your cmdline, it is booting and working for you?

I have defined a few more attributes in the kernel config and board_shuttle.h

Yup using test 22 rom and ramdisk. can upload my boot.img or .config when I get back

Link to comment
Share on other sites

Guest newbe5

I have defined a few more attributes in the kernel config and board_shuttle.h

Yup using test 22 rom and ramdisk. can upload my boot.img or .config when I get back

Yea, would be great if you could upload these! Test22 was based on the Iconia A500 image. Unfortunately this is not deodexed/had any work done on it. We are currently using a ROM based on a Transformer image, and we don't appear to be able to use your cmdline to boot android for some strange reason :/

It is possible that this TF image has some intrinsic issues that either need to be ironed out, or abandoned for the Iconia base. Although right now I can't find a way to deodex/boot the Iconia image :/ If someone with more smars than me can work that one out, then it'll be a boost!

newbe5

Link to comment
Share on other sites

Guest a_appleby

I have defined a few more attributes in the kernel config and board_shuttle.h

Yup using test 22 rom and ramdisk. can upload my boot.img or .config when I get back

Please upload the changed files.

I couldn't boot it with the changes you recommended.

Yea, would be great if you could upload these! Test22 was based on the Iconia A500 image. Unfortunately this is not deodexed/had any work done on it. We are currently using a ROM based on a Transformer image, and we don't appear to be able to use your cmdline to boot android for some strange reason :/

It is possible that this TF image has some intrinsic issues that either need to be ironed out, or abandoned for the Iconia base. Although right now I can't find a way to deodex/boot the Iconia image :/ If someone with more smars than me can work that one out, then it'll be a boost!

newbe5

Are you talking about booting the system.img from rebel1 on the Vega from the nand? If so, I can help you with that if you wish.

I will update this post with some goodies in a short while.

Link to comment
Share on other sites

Guest Cass67

I'm also confused by this. Using your cmdline, it is booting and working for you?

hey bud,

Mailed you the cmdline values that works on the latest test image .. it boots 512 now ;) just not tested it on video or anything else yet. .. for the others benifit on the TF side of the house we seem to need to use the following if they are using 64m kernel it seems.

mem=512M@0M nvmem=64M@512M vmalloc=256M video=tegrafb console=ttyS0,115200n8 usbcore.old_scheme_first=1 tegraboot=nand mtdparts=tegra_nand:2048K@6784K(misc),5120K@9344K(recovery),8192K@14976K(boot),155008K@23680K(system),32768K@179200K(cache),4096K@212480K(staging),306688K@217088K(userdata)

Cass

PS: - nvmem=64M@512M is only here as i have defined 64m gpu ram in kernel .. im sure for 128 defined we need to change this ..

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.