From: Dominique Larchey-Wendling <Dominique.Larchey-Wendling@loria.fr>
To: Theodore Tso <tytso@mit.edu>
Cc: linux-serial@vger.kernel.org
Subject: Re: New IOCTL for Modem Control Lines monitoring
Date: Tue, 30 Jan 2007 18:19:29 +0100 [thread overview]
Message-ID: <45BF7E21.5040400@loria.fr> (raw)
In-Reply-To: <20070130023902.GB28035@thunk.org>
> The question is why do you need such functionality? The only way to
> implement what you propose would be pass a structure containing the
> previous counts into your proposed new ioctl(), which won't be well
> received by the folks who have to maintain 32/64-bit translation
> tables for ioctl's for use by supporting architectures that have to
> support 32 and 64 bit ABI's simultaneously.
Well I do not clearly understand the problem you refer to because
it seems to me that the new function uart_wait_new_status would not
need extra structure compared to function uart_get_count (ioctl
TIOCGICOUNT) for example. As shown in my previous mail, the profile
of the function would be :
static int
uart_wait_new_status(struct uart_state *state, struct
serial_icounter_struct __user *icnt)
the "icnt" argument serving as an input as well as an output.
The mask could be in icount.reserved[0]
But maybe the folks (32/64 porters and ioctl haters) you refer
to already do not like the existing ioctls and do not want to
add a new one, even if its interface is similar to TIOCGICOUNT.
> So what are you actually trying to *do*? Is this just to fix a
> theoretical shortcoming? What does your application really need to
> do, and perhaps there's a another way we can address it with perhaps a
> cleaner interface.
Well the application I want to improve is a "serial" (userspace) driver
for a Lacrosse Weatherstation WS 8610, communicating only through modem
control lines. There exists a usable driver but it uses polling and
so grabs all the cpu for its processing.
- Dominique
Theodore Tso wrote:
> On Thu, Jan 25, 2007 at 06:09:33PM +0100, Dominique Larchey-Wendling wrote:
>> Even tough such an event would have a low probability to occur
>> if the 2 ioctl are close enough, it is still possible. This is
>> a race condition (outside the kernel but possibly locking some
>> process).
>>
>> I propose the introduction of a new ioctl to solve this race,
>> implemented through the NEW function uart_wait_new_status associated
>> to a NEW ioctl.
>>
>> The idea is that this new call would detect a change not compared
>> to the status at the beginning of the call but compared to some
>> previously recorded state. This way, the new ioctl would not
>> miss a status change, even if it occurs before the call to the
>> ioctl.
>
> You're right that this is a technical flaw in TIOCMIWAIT. When it was
> originally implemented, it was done to retain compatibility with older
> implementations in other OS's.
>
> The question is why do you need such functionality? The only way to
> implement what you propose would be pass a structure containing the
> previous counts into your proposed new ioctl(), which won't be well
> received by the folks who have to maintain 32/64-bit translation
> tables for ioctl's for use by supporting architectures that have to
> support 32 and 64 bit ABI's simultaneously. Because of this issue
> some folks have proposed killing off ioctl's entirely, which is
> probably not the right answer, but the fact remains that adding new
> ioctl's that require passing in pointers to arbitrary data structures
> is definitely not going to be well received.
>
> So what are you actually trying to *do*? Is this just to fix a
> theoretical shortcoming? What does your application really need to
> do, and perhaps there's a another way we can address it with perhaps a
> cleaner interface.
>
> - Ted
> -
> To unsubscribe from this list: send the line "unsubscribe linux-serial" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
prev parent reply other threads:[~2007-01-30 17:19 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-01-25 17:09 New IOCTL for Modem Control Lines monitoring Dominique Larchey-Wendling
2007-01-25 18:34 ` Tosoni
2007-01-25 19:00 ` Dominique Larchey
2007-01-30 2:39 ` Theodore Tso
2007-01-30 17:19 ` Dominique Larchey-Wendling [this message]
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=45BF7E21.5040400@loria.fr \
--to=dominique.larchey-wendling@loria.fr \
--cc=linux-serial@vger.kernel.org \
--cc=tytso@mit.edu \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).