From: Jiri Slaby <jslaby@suse.cz>
To: Ivo Sieben <meltedpianoman@gmail.com>
Cc: Alan Cox <alan@linux.intel.com>,
Greg KH <gregkh@linuxfoundation.org>,
linux-serial@vger.kernel.org, RT <linux-rt-users@vger.kernel.org>,
Heiko Carstens <heiko.carstens@de.ibm.com>
Subject: Re: [PATCH] tty: cleanup duplicate functions in tty_buffer
Date: Mon, 24 Sep 2012 10:15:54 +0200 [thread overview]
Message-ID: <506016BA.2070704@suse.cz> (raw)
In-Reply-To: <CAMSQXEHkjWubwNXiCd_bBnUdzQ2M+sa8HPs2KCzwcOOp2dSsBw@mail.gmail.com>
On 09/24/2012 10:02 AM, Ivo Sieben wrote:
> Hi,
>
> 2012/9/20 Alan Cox <alan@linux.intel.com>:
>>
>> So now when the user sets tty->low_latency on these devices the machine
>> crashes ?
>>
>> This is the wrong direction - in fact we have a pile we need to move
>> the other way !
>>
>> If they resolve to the same thing in hard RT patches fine, that's a
>> different question.
>
> Sorry, Allan you are probably right, but I don't get it...
>
> I agree that when the tty->low_latency flag is set on these machines,
> the drivers that were modified by my patch will behave differently:
> they will call the flush_to_ldisc() function directly instead of using
> the work queue. So that indeed introduces different functionality.
>
> But what I don't understand is how this would cause the machine to
> crash? Even when the flush_to_ldisc() function is called from hard IRQ
> context this would cause no problems: the flush_to_ldisc() function
> uses IRQ save spin locks instead of mutexes to protect it's critical
> section. Right?
Yes, but there are deadlocks caused when low_latency is set. Simply
because flush_to_ldisc calls tty->ops->flush_chars from ldisc's
receive_buf. And some drivers take a lock there. But they already hold
the lock from the site where they call tty_schedule_flip from.
> Furthermore the majority of TTY drivers currently already use the
> tty_flip_buffer_push() function.
Yes, but not all call tty_flip_buffer_push correctly. If you set
low_latency for them, they explode.
regards,
--
js
suse labs
next prev parent reply other threads:[~2012-09-24 8:15 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-20 13:53 [PATCH] tty: cleanup duplicate functions in tty_buffer Ivo Sieben
2012-09-20 13:53 ` Ivo Sieben
2012-09-20 16:17 ` Alan Cox
2012-09-20 16:17 ` Alan Cox
2012-09-24 8:02 ` Ivo Sieben
2012-09-24 8:15 ` Jiri Slaby [this message]
2012-09-24 9:25 ` Alan Cox
2012-09-25 11:28 ` Ivo Sieben
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=506016BA.2070704@suse.cz \
--to=jslaby@suse.cz \
--cc=alan@linux.intel.com \
--cc=gregkh@linuxfoundation.org \
--cc=heiko.carstens@de.ibm.com \
--cc=linux-rt-users@vger.kernel.org \
--cc=linux-serial@vger.kernel.org \
--cc=meltedpianoman@gmail.com \
/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.