On 02/29/2016 11:14 AM, Thomas Gleixner wrote:
> On Mon, 29 Feb 2016, Peter Hurley wrote:
>> On 02/29/2016 10:24 AM, Eric Dumazet wrote:
>>>> Just to be clear
>>>>
>>>>if (time_before(jiffies, end) && !need_resched() &&
&g
On 02/29/2016 07:27 AM, Eric Dumazet wrote:
> On lun., 2016-02-29 at 07:03 -0800, Peter Hurley wrote:
>
>> The reason why Eric's change is so effective for Eric's workload is
>> that it fixes the problem where NET_RX keeps getting new network packets
>> so it ke
On 02/29/2016 10:24 AM, Eric Dumazet wrote:
> On lun., 2016-02-29 at 10:05 -0800, Peter Hurley wrote:
>
>> While I appreciate the attempt, that's not the problem.
>>
>> Just to be clear
>>
>> if (time_before(jiffies, end) && !ne
On 02/29/2016 08:21 AM, Eric Dumazet wrote:
> On lun., 2016-02-29 at 07:54 -0800, Peter Hurley wrote:
>
>> The current kernel is HZ=250 but this would occur on HZ=1000 as well.
>
> Right. But the problem with HZ=100 and HZ=250 is that the detection can
> happens because jif
On 02/29/2016 07:19 AM, Eric Dumazet wrote:
> On lun., 2016-02-29 at 07:03 -0800, Peter Hurley wrote:
>
>> Not the case. The softirq is raised from interrupt.
>>
>> Before Eric's change, when an interrupt raises a new softirq
>> while processing another soft
On 02/29/2016 07:40 AM, Mike Galbraith wrote:
> On Mon, 2016-02-29 at 07:03 -0800, Peter Hurley wrote:
>
>>> If I'm listening properly, the root cause is that there is a timing
>>> constraint involved, which is being exposed because one softirq raises
>>>
On 02/28/2016 08:58 PM, Mike Galbraith wrote:
> On Sun, 2016-02-28 at 18:01 +0100, Francois Romieu wrote:
>> Mike Galbraith :
>> [...]
>>> Hrm, relatively new + tasklet woes rings a bell. Ah, that..
>>>
>>>
>>> What's worse is that at the point where this code was written it was
>>> already well
On 02/27/2016 05:59 PM, Eric Dumazet wrote:
> On sam., 2016-02-27 at 15:33 -0800, Peter Hurley wrote:
>> On 02/27/2016 03:04 PM, David Miller wrote:
>>> From: Peter Hurley
>>> Date: Sat, 27 Feb 2016 12:29:39 -0800
>>>
>>>> Not really. softirq r
On 02/27/2016 03:04 PM, David Miller wrote:
> From: Peter Hurley
> Date: Sat, 27 Feb 2016 12:29:39 -0800
>
>> Not really. softirq raised from interrupt context will always execute
>> on this cpu and not in ksoftirqd, unless load forces softirq loop abort.
>
> That gu
On 02/27/2016 12:13 PM, Eric Dumazet wrote:
> On sam., 2016-02-27 at 10:19 -0800, Peter Hurley wrote:
>> Hi Eric,
>>
>> For a while now, we've been struggling to understand why we've been
>> observing missed uart rx DMA.
>>
>> Because both th
t, is it just
NET_TX/NET_RX softirqs that are causing scheduling latencies?
It just doesn't make sense to special case for a workload that isn't
even running.
Regards,
Peter Hurley
[1] softirq tasklet latency trace (apologies that it's only events - full
function trace intr
nk.c. However, I can't see the
>>>>> connection between Bluetooth (BLE) and UDP/IPv6 (we're not using
>>>>> 6LoWPAN or anything similar).
>>>>>
>>>>> Thanks, Jacob
>>>>
>>>> Definitely these details are useful ;)
>>>>
>>>> Could you try :
>>>>
>>>> diff --git a/drivers/misc/ti-st/st_core.c b/drivers/misc/ti-st/st_core.c
>>>> index 6e3af8b42cdd..0c99a74fb895 100644
>>>> --- a/drivers/misc/ti-st/st_core.c
>>>> +++ b/drivers/misc/ti-st/st_core.c
>>>> @@ -912,7 +912,9 @@ void st_core_exit(struct st_data_s *st_gdata)
>>>> skb_queue_purge(&st_gdata->txq);
>>>> skb_queue_purge(&st_gdata->tx_waitq);
>>>> kfree_skb(st_gdata->rx_skb);
>>>> + st_gdata->rx_skb = NULL;
>>>> kfree_skb(st_gdata->tx_skb);
>>>> + st_gdata->tx_skb = NULL;
>>>> /* TTY ldisc cleanup */
>>>> err = tty_unregister_ldisc(N_TI_WL);
>>>> if (err)
FWIW,
You don't need that ti-st junk to get the WL1837 working; the WL1837 only
has BT channels. Unfortunately, that's really all I can say about it; sorry.
Regards,
Peter Hurley
Greg,
Would you drop these 4 patches from tty-testing please?
On 11/09/2015 04:15 AM, Peter Hurley wrote:
> Hi Greg,
>
> This series cleans up a messy and poorly documented mechanism required
> at tty final close to prevent drivers from crashing after h/w shutdown.
>
&g
ree.
>
>>> + kfree(cs->hw.ser);
>>> + cs->hw.ser = NULL;
This pattern is common, and defends against much more common
driver bugs.
Unfortunately, much of the good this pattern is intended to do in finding
use-after-free bugs is undone by explicit tests for null every
Tilman,
Is there a 1:1 correspondence and lifetime for the embedded platform
device and it's containing memory?
I ask because the typical approach for device teardown is to put the
kfree() in the release method; naturally, that won't work if there
is some other lifetime issue.
Reg
[] gigaset_freecshw+0xe1/0x120
>
> There are functions by this name in all three Gigaset hardware dependent
> modules (bas_gigaset, ser_gigaset and usb_gigaset), but ...
>
>> [ 413.562723] [] gigaset_freecs+0x2ad/0x600
>> [ 413.564240] [] gigaset_tty_close+0x210/0x280
>
if you included the syzkaller-generated applet with
the bug reports; state previously established by the applet can be
crucial in understanding why the call stack looks the way it does.
Also, every generated applet that triggers a report should become
a future regression test; I'm collecting
ioctl.c:43 fs/ioctl.c:607)
[ 634.427491] SyS_ioctl (fs/ioctl.c:622 fs/ioctl.c:613)
[ 634.427945] entry_SYSCALL_64_fastpath (arch/x86/entry/entry_64.S:188)
Reported-and-tested-by: Sasha Levin
Cc:
Signed-off-by: Peter Hurley
---
drivers/net/wan/x25_asy.c | 6 +-
1 file changed, 1 in
kmalloc-512 (Not tainted): kasan: bad access detected
Thanks for the report, Sasha.
Would you please test the patch below?
The ldisc api should really prevent these kinds of errors. I'll prepare
a patch to the tty core which should address the api weakness.
Regards,
Peter Hurley
--->%
The tty_port_close_start() helper already flushes the tty and ldisc
buffers on final close; tty drivers which use this helper need not
repeat tty_ldisc_flush().
Signed-off-by: Peter Hurley
---
drivers/char/pcmcia/synclink_cs.c | 3 ---
drivers/tty/amiserial.c | 2 --
drivers/tty
On final port close (and thus final tty close), only output flow
control requests in the input data should be processed. Ignore all
other input data, including parity errors, overruns and breaks.
Signed-off-by: Peter Hurley
---
drivers/tty/n_tty.c | 2 --
1 file changed, 2 deletions(-)
diff
ductive.
NB: ipwireless_tty_free() is completely bogus; freeing the tty (?!) with
open, in-use file descriptors is laughable.
Signed-off-by: Peter Hurley
---
v2: Fixed tty_ldisc_closing() ld use found by Johannes Stezenbach
drivers/isdn/i4l/isdn_tty.c | 2 +-
drivers/s390/char/con3215
This driver's private completion variable, close_wait, is no longer
used for wait since "tty: Remove ASYNC_CLOSING checks in open()/hangup";
remove.
Signed-off-by: Peter Hurley
---
drivers/tty/rocket.c | 2 --
drivers/tty/rocket_int.h | 1 -
2 files changed, 3 deletions(-
found by Johannes Stezenbach
Regards,
Peter Hurley (4):
tty: rocket: Remove private close_wait
n_tty: Ignore all read data when closing
tty: Abstract and encapsulate tty->closing behavior
tty: Remove drivers' extra tty_ldisc_flush()
drivers/char/pcmcia/synclink_cs.c | 3 ---
d
On 11/09/2015 04:12 AM, Johannes Stezenbach wrote:
> On Sun, Nov 08, 2015 at 05:02:52PM -0500, Peter Hurley wrote:
>> +void tty_ldisc_closing(struct tty_struct *tty)
>> +{
>> +struct tty_ldisc *ld = tty_ldisc_ref(tty);
>> +
>> +if (ld->ops->closin
tty drivers which open-code the close() method
drivers/staging/dgnc/dgnc_tty.c
drivers/staging/dgap/dgap.c
drivers/tty/hvc/hvsi.c
drivers/tty/serial/68328serial.c
drivers/tty/serial/crisv10.c
drivers/isdn/i4l/isdn_tty.c
drivers/s390/char/con3215.c
Regards,
Peter Hurley (4):
tty: rocket: Remove
The tty_port_close_start() helper already flushes the tty and ldisc
buffers on final close; tty drivers which use this helper need not
repeat tty_ldisc_flush().
Signed-off-by: Peter Hurley
---
drivers/char/pcmcia/synclink_cs.c | 3 ---
drivers/tty/amiserial.c | 2 --
drivers/tty
This driver's private completion variable, close_wait, is no longer
used for wait since "tty: Remove ASYNC_CLOSING checks in open()/hangup";
remove.
Signed-off-by: Peter Hurley
---
drivers/tty/rocket.c | 2 --
drivers/tty/rocket_int.h | 1 -
2 files changed, 3 deletions(-
ductive.
NB: ipwireless_tty_free() is completely bogus; freeing the tty (?!) with
open, in-use file descriptors is laughable.
Signed-off-by: Peter Hurley
---
drivers/isdn/i4l/isdn_tty.c | 2 +-
drivers/s390/char/con3215.c | 3 +--
drivers/staging/dgap/dgap.c | 4 +---
drivers/
On final port close (and thus final tty close), only output flow
control requests in the input data should be processed. Ignore all
other input data, including parity errors, overruns and breaks.
Signed-off-by: Peter Hurley
---
drivers/tty/n_tty.c | 2 --
1 file changed, 2 deletions(-)
diff
re not harmful.
Use of usleep_range() would be unnecessary overkill for the purpose.
Regards,
Peter Hurley
> ---
>
> I have tested your changes
>
> [Intel-wired-lan] [PATCHv2] ixgbe: Wait for 1ms, not 1us, after RST
>
> Project: net (net-current development queue)
>
&g
e ixgbe_reset_hw_x540() goes on to msleep(100) immediately after this
busy-wait loop, this should instead be:
msleep(1);
Regards,
Peter Hurley
> ctrl = IXGBE_READ_REG(hw, IXGBE_CTRL);
> if (!(ctrl & IXGBE_CTRL_RST_MASK))
>
[ forgot to addr Felipe here, sorry ]
On 10/10/2015 04:00 PM, Peter Hurley wrote:
> close_wait is no longer needed or provided by the tty core.
> Move close_wait to struct gs_port.
>
> Signed-off-by: Peter Hurley
> ---
> drivers/usb/gadget/function/u_serial.c | 6 --
&g
avid Laight
CC: Arnd Bergmann
CC: Karsten Keil
CC: linuxppc-...@lists.ozlabs.org
Signed-off-by: Peter Hurley
---
drivers/isdn/i4l/isdn_tty.c | 2 +-
drivers/tty/hvc/hvc_console.c | 2 +-
drivers/tty/hvc/hvcs.c| 2 +-
drivers/tty/tty_port.c| 11 ++-
incl
iters will be using the
closing instance of the line discipline. Completely remove that wakeup.
Signed-off-by: Peter Hurley
---
drivers/tty/n_r3964.c | 10 --
include/linux/n_r3964.h | 3 ---
2 files changed, 4 insertions(+), 9 deletions(-)
diff --git a/drivers/tty/n_r3964.c b/driver
ocking (eg., in *_block_til_ready()).
Note: The ASYNC_CLOSING flag state is still maintained since several
bitrotting drivers use it for (dubious) other purposes.
Signed-off-by: Peter Hurley
---
drivers/char/pcmcia/synclink_cs.c | 9 -
drivers/tty/cyclades.c| 9 -
drive
tty_lock() is unnecessary and
counter-productive; remove tty lock use.
However, the line discipline is responsible for serializing reads
(if required by the line discipline); add read_lock mutex to
serialize calls of r3964_read().
Signed-off-by: Peter Hurley
---
drivers/tty/n_r3964.c | 20
t changes, and David Miller for the ISDN/IRDA changes.
Regards,
Peter Hurley (7):
tty: Remove tty_wait_until_sent_from_close()
tty: Remove ASYNC_CLOSING checks in open()/hangup() methods
usb: gadget: gserial: Privatize close_wait
tty: Remove tty_port::close_wait
tty: r3964: Use tty->rea
close_wait is no longer needed or provided by the tty core.
Move close_wait to struct gs_port.
Signed-off-by: Peter Hurley
---
drivers/usb/gadget/function/u_serial.c | 6 --
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/usb/gadget/function/u_serial.c
b/drivers/usb
.
Signed-off-by: Peter Hurley
---
drivers/tty/rocket.c | 1 -
drivers/tty/serial/68328serial.c | 1 -
drivers/tty/serial/crisv10.c | 1 -
drivers/tty/serial/serial_core.c | 1 -
drivers/tty/tty_port.c | 2 --
include/linux/tty.h | 1 -
6 files changed, 7
In-tree users of wait_event_interruptible_tty() have been removed;
remove.
Signed-off-by: Peter Hurley
---
include/linux/tty.h | 26 --
1 file changed, 26 deletions(-)
diff --git a/include/linux/tty.h b/include/linux/tty.h
index 090ce2a..c2889f4 100644
--- a/include
On 09/29/2015 07:45 PM, Tilman Schmidt wrote:
> Mention that the ldisc open method must set tty->receive_room, and
> that many methods are optional. Add description of receive_buf2 method.
Thanks, Tilman!
Reviewed-by: Peter Hurley
--
To unsubscribe from this list: send the line &qu
.
Non-flow controlling line disciplines _must_ set tty->receive_room
on line discipline open because they are declaring that every
input they can accept that much data.
Regards,
Peter Hurley
> The present patch fixes that regression by setting receive_room
> to an appropriate value in the ldisc o
43 matches
Mail list logo