From: Corey Minyard <minyard@acm.org>
To: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: Linux Kernel <linux-kernel@vger.kernel.org>,
linux-serial@vger.kernel.org
Subject: Re: [PATCH] Provide better abstraction for the serial drivers to xmit buf and tty
Date: Wed, 18 Apr 2007 11:15:39 -0500 [thread overview]
Message-ID: <4626442B.5050708@acm.org> (raw)
In-Reply-To: <20070418102027.0e1edb2b@the-village.bc.nu>
Alan Cox wrote:
>> The basic reason for all this is to eventually allow the low-level
>> serial drivers to function without a uart_info structure being
>> allocated. This will allow the serial console, debuggers like kgdb,
>> and the IPMI serial driver to use one interface to the uart code and
>>
>
> Its cheaper to allocate a uart_info that keep doing all the checks, at
> least for port->info. I can see why you want to avoid port->info->tty as
> a debugger can end up running before the tty layer and that would be hard
> to work around.
>
Currently the uart_info structure is allocated on an open, so it's not
available until that point in time. The trouble is that console_init() is
called before memory is set up, so you can't allocate the uart_info
until it's too late for the console or a debugger that wants to work
early, though it's ok for IPMI.
> For the other macros - the macros are more efficient than the equivalent
> inline code generation at least for some gccs.
>
I thought that inlines were preferred, but I can do macros.
> Do you really need any of this change but to check info->tty ?
>
I'm not really sure. For IPMI I could do without it, but I'm not
sure about consoles or debuggers.
I have a patch that does consoles over this. Part of that is moving
the transmit (circ) buffer to the port, so that port->info is not required
at all for console I/O and the console code can supply its own transmit
buffer. This allows the polled I/O code to reuse all the standard uart
operations for the low-level driver and for the user code, just having
to add a function to call the interrupt handlers properly.
The uart_info struct is not very big, maybe it would be best to pull that
into uart_port? But the circ buffer might still be a problem, since it
would need to be dynamically allocated and it might need to be
checked instead.
-corey
next prev parent reply other threads:[~2007-04-18 16:15 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-04-18 4:54 [PATCH] Provide better abstraction for the serial drivers to xmit buf and tty Corey Minyard
2007-04-18 9:20 ` Alan Cox
2007-04-18 16:15 ` Corey Minyard [this message]
2007-04-18 19:12 ` Alan Cox
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=4626442B.5050708@acm.org \
--to=minyard@acm.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-serial@vger.kernel.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.