From: "Antonino A. Daplas" <adaplas@gmail.com>
To: linux-fbdev-devel@lists.sourceforge.net
Cc: "Antonino A. Daplas" <adaplas@gmail.com>,
Andrew Morton <akpm@osdl.org>, Linus Torvalds <torvalds@osdl.org>,
Linux Kernel Development <linux-kernel@vger.kernel.org>
Subject: Re: Re: [PATCH] fbdev: colormap fixes
Date: Fri, 29 Jul 2005 07:19:48 +0800 [thread overview]
Message-ID: <42E96814.8030005@pol.net> (raw)
In-Reply-To: <Pine.LNX.4.62.0507281758080.24391@numbat.sonytel.be>
Geert Uytterhoeven wrote:
> On Thu, 28 Jul 2005, Antonino A. Daplas wrote:
>> Jon Smirl wrote:
>>> On 7/28/05, Geert Uytterhoeven <geert@linux-m68k.org> wrote:
>>>> On Wed, 27 Jul 2005, Linux Kernel Mailing List wrote:
>>> There are a couple of ways to fix this.
>>> 1) Add a check to limit use of the sysfs attributes to 256 entries. If
>>> you want more you have to use /dev/fb0 and the ioctl. More is an
>>> uncommon case.
>>> 2) Switch this to a binary parameter. Now you have to use tools like
>>> hexdump instead of cat to work with the data. It was nice to be able
>>> to use cat to see the current map.
>>>
>>> Does anyone have preferences for which way to fix it?
>> Or...
>>
>> 3) Add another file in sysfs which specifies at what index and how many
>> entries will be read or written from or to the cmap. With this additional
>> sysfs file, it should be able to handle any reasonable cmap length, but
>> it will take more than one reading of the color_map file. Another
>> advantage is that the entire color map need not be read or written if
>> only one field needs to be changed.
>>
>> I've attached a test patch. Let me know what you think.
>
> I like it! ... But, a disadvantages is that it needs to store state between two
> non-atomic operations. E.g. imagine two processes doing this at the same time.
We can add a check that if the incoming buffer index start and length does
not match the current start and len (as set by cmap_range), then exit with
and empty buffer.
Conversely, users can always check if the output read from color_map matches
the value it entered in cmap_range.
As a side note:
The rest of the fbsysfs attributes suffer from the same thing, especially since the
value of each attribute depends on each other. What if one process reads the
virtual_size, while another one changes the bits_per_pixel? I'm pretty sure that
setting bits_per_pixel to a higher value will almost always change the virtual_size.
Currently, the only way to guarantee atomicity is to use the ioctls. The main
reason why we change the video mode, framebuffer format, color format, etc in one
go with fb_set_var() is precisely this.
Tony
-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO September
19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
WARNING: multiple messages have this Message-ID (diff)
From: "Antonino A. Daplas" <adaplas@gmail.com>
To: linux-fbdev-devel@lists.sourceforge.net
Cc: "Antonino A. Daplas" <adaplas@gmail.com>,
Andrew Morton <akpm@osdl.org>, Linus Torvalds <torvalds@osdl.org>,
Linux Kernel Development <linux-kernel@vger.kernel.org>
Subject: Re: [Linux-fbdev-devel] Re: [PATCH] fbdev: colormap fixes
Date: Fri, 29 Jul 2005 07:19:48 +0800 [thread overview]
Message-ID: <42E96814.8030005@pol.net> (raw)
In-Reply-To: <Pine.LNX.4.62.0507281758080.24391@numbat.sonytel.be>
Geert Uytterhoeven wrote:
> On Thu, 28 Jul 2005, Antonino A. Daplas wrote:
>> Jon Smirl wrote:
>>> On 7/28/05, Geert Uytterhoeven <geert@linux-m68k.org> wrote:
>>>> On Wed, 27 Jul 2005, Linux Kernel Mailing List wrote:
>>> There are a couple of ways to fix this.
>>> 1) Add a check to limit use of the sysfs attributes to 256 entries. If
>>> you want more you have to use /dev/fb0 and the ioctl. More is an
>>> uncommon case.
>>> 2) Switch this to a binary parameter. Now you have to use tools like
>>> hexdump instead of cat to work with the data. It was nice to be able
>>> to use cat to see the current map.
>>>
>>> Does anyone have preferences for which way to fix it?
>> Or...
>>
>> 3) Add another file in sysfs which specifies at what index and how many
>> entries will be read or written from or to the cmap. With this additional
>> sysfs file, it should be able to handle any reasonable cmap length, but
>> it will take more than one reading of the color_map file. Another
>> advantage is that the entire color map need not be read or written if
>> only one field needs to be changed.
>>
>> I've attached a test patch. Let me know what you think.
>
> I like it! ... But, a disadvantages is that it needs to store state between two
> non-atomic operations. E.g. imagine two processes doing this at the same time.
We can add a check that if the incoming buffer index start and length does
not match the current start and len (as set by cmap_range), then exit with
and empty buffer.
Conversely, users can always check if the output read from color_map matches
the value it entered in cmap_range.
As a side note:
The rest of the fbsysfs attributes suffer from the same thing, especially since the
value of each attribute depends on each other. What if one process reads the
virtual_size, while another one changes the bits_per_pixel? I'm pretty sure that
setting bits_per_pixel to a higher value will almost always change the virtual_size.
Currently, the only way to guarantee atomicity is to use the ioctls. The main
reason why we change the video mode, framebuffer format, color format, etc in one
go with fb_set_var() is precisely this.
Tony
next prev parent reply other threads:[~2005-07-28 23:20 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <200507280031.j6S0V3L3016861@hera.kernel.org>
2005-07-28 7:54 ` [PATCH] fbdev: colormap fixes Geert Uytterhoeven
2005-07-28 7:54 ` Geert Uytterhoeven
2005-07-28 13:07 ` Jon Smirl
2005-07-28 13:07 ` Jon Smirl
2005-07-28 13:40 ` Geert Uytterhoeven
2005-07-28 13:40 ` Geert Uytterhoeven
2005-07-28 14:50 ` Antonino A. Daplas
2005-07-28 14:50 ` [Linux-fbdev-devel] " Antonino A. Daplas
2005-07-28 15:59 ` Geert Uytterhoeven
2005-07-28 15:59 ` [Linux-fbdev-devel] " Geert Uytterhoeven
2005-07-28 16:29 ` Jon Smirl
2005-07-28 16:29 ` [Linux-fbdev-devel] " Jon Smirl
2005-07-28 18:18 ` Jon Smirl
2005-07-28 18:18 ` [Linux-fbdev-devel] " Jon Smirl
2005-07-28 20:03 ` Geert Uytterhoeven
2005-07-28 20:03 ` [Linux-fbdev-devel] " Geert Uytterhoeven
2005-07-28 20:15 ` Jon Smirl
2005-07-28 20:15 ` [Linux-fbdev-devel] " Jon Smirl
2005-07-28 20:21 ` Jon Smirl
2005-07-28 20:21 ` [Linux-fbdev-devel] " Jon Smirl
2005-07-28 20:50 ` Jon Smirl
2005-07-28 20:50 ` [Linux-fbdev-devel] " Jon Smirl
2005-07-28 21:39 ` Geert Uytterhoeven
2005-07-28 21:39 ` [Linux-fbdev-devel] " Geert Uytterhoeven
2005-07-28 21:50 ` Jon Smirl
2005-07-28 21:50 ` [Linux-fbdev-devel] " Jon Smirl
2005-07-28 22:28 ` Antonino A. Daplas
2005-07-28 22:28 ` [Linux-fbdev-devel] " Antonino A. Daplas
2005-07-29 7:43 ` Geert Uytterhoeven
2005-07-29 7:43 ` [Linux-fbdev-devel] " Geert Uytterhoeven
2005-07-29 10:34 ` Jon Smirl
2005-07-29 10:34 ` [Linux-fbdev-devel] " Jon Smirl
2005-07-29 20:20 ` James Simmons
2005-07-29 20:20 ` [Linux-fbdev-devel] " James Simmons
2005-07-28 23:19 ` Antonino A. Daplas [this message]
2005-07-28 23:19 ` Antonino A. Daplas
2005-07-29 20:13 ` James Simmons
2005-07-29 20:13 ` [Linux-fbdev-devel] " James Simmons
2005-07-28 14:45 ` Jon Smirl
2005-07-28 14:45 ` Jon Smirl
2005-07-28 15:56 ` Geert Uytterhoeven
2005-07-28 15:56 ` Geert Uytterhoeven
2005-07-28 19:31 ` Jon Smirl
2005-07-28 19:31 ` Jon Smirl
2005-07-28 20:04 ` Geert Uytterhoeven
2005-07-28 20:04 ` Geert Uytterhoeven
2005-07-28 22:16 ` Antonino A. Daplas
2005-07-28 22:16 ` [Linux-fbdev-devel] " Antonino A. Daplas
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=42E96814.8030005@pol.net \
--to=adaplas@gmail.com \
--cc=akpm@osdl.org \
--cc=linux-fbdev-devel@lists.sourceforge.net \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@osdl.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.