Thread (8 messages) 8 messages, 4 authors, 2003-09-13

Re: Large framebuffers and HIGHMEM systems

From: James Simmons <hidden>
Date: 2003-09-12 22:56:37

Fbdev needs to come up with a general solution for mapping large framebuffers
on systems with over 1GB memory. For example my system does not have 64MB of
free address space below 1GB, this causes my framebuffer drivers to fail when
loading. With RAM prices at $200 for 1GB memory 1GB systems will be common
during the 2.6 timeframe.

There are many possible solutions...
1) add reserve=XXXX to the kernel at boot. Drawback to this is reserving
256-512MB takes this memory out of lowmem kernel use. This will push page
tables into highmem slowing the whole system down.
NOPE!!!!
2) Only map a 2048x2048x32 piece of the framebuffer. This still uses 16MB of
address space which may not always be available. It could be possible to modify
the kernel to always reserve this much address space at boot.
I was thinking about a solution like this. We have to consider that alot 
of drivers use the extra memory space to do hardware panning to create a
scrolling effect. We could set a limit to the amount of memory mapped for 
this effect. 
3) Only map what is actually needed on each mode change. Mode change could fail
at run time if not enough free address space.
That is acceptable. I doubt it would fail all the time. We lose th 
eperformance boost for scrolling tho :-(
4) Map the buffer into the highmem address space using the highmem access
macros.
We could do a partial mapping into highmem space. Lomem memory what we are 
using now. High memory for what we need less often.
5) Map the fb in a user process and send it signals to draw.
Yuck!!

The good news is fully accelerated drivers don't need to ioremap the 
entire range in memory at one time. screen_base is not much use to them. 
The only place this is not true is fb_read and fb_write. We could setup a 
blitting engine use tho :-) Then of course mmap a huge framebuffer to 
memory would fail then with 1 GB memory systems. 

P.S
    How bad is the cost to access high memory?




-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help