Thread (7 messages) 7 messages, 3 authors, 2005-11-24

Re: Console rotation problems

From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date: 2005-11-24 01:51:07
Also in: lkml

On Thu, 2005-11-24 at 11:52 +1100, Benjamin Herrenschmidt wrote:
On Thu, 2005-11-24 at 11:45 +1100, Benjamin Herrenschmidt wrote:
quoted
Hi Antonio !

I decided to give a quick test to console rotation on my g5 (radeonfb)
and couldn't get it to work.

When I tried echo'ing something in con_rotate, something very strange
happened:

pogo:/sys/class/graphics/fb0# echo "1" >con_rotate
benh@pogo:~$
  .../...

And here is the Oops that explains the shell exit and that I didn't see
the first time :)

Trap 0x600 is an alignment exception, which is a bit weird, I'll try to
dig a bit more, it could be a problem with the alignment trap handler on
ppc.
Ok, looks like an unaligned set_bit() or atomic_or(). You can't do
atomic operations on non-aligned quantities. Let me check the code ...

OUCH !

Is there any reason why you are using set_bit & friends all over the
place over there in fbcon_rotate.h ? Are you actually trying to perform
atomic operations ?

set_bit(), clear_bit() etc... are

1) atomic. that mean slow, won't work on uncached memory (like
framebuffer), and won't work if not aligned propertly

2) won't guarantee the bit position, they are consistent within an
architecture but not accross.

If you want bit manipulation of pixel data, use your own routines, using
set_bit/clear_bit & friends is completely bogus.

The __xxx versions will fix 1), but not 2) btw.

Ben.




-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help