Subject: Re: 4.16 issue with mbim modem and ping with size > 14552 bytes

From: Greg KH <[email-masked]>
Date: Mon, 28 May 2018 10:04:09 +0200

On Mon, May 28, 2018 at 09:58:01AM +0200, Daniele Palmas wrote:
> 2018-05-25 0:54 GMT+02:00 Daniele Palmas <[email-masked]>:
> > Hi Greg,
> >
> > 2018-05-24 17:53 GMT+02:00 Greg KH <[email-masked]>:
> >> On Thu, May 24, 2018 at 05:04:49PM +0200, Daniele Palmas wrote:
> >>> Hello,
> >>>
> >>> I have an issue with an USB mbim modem when trying to send with ping
> >>> more than 14552 bytes: it looks like to me a kernel issue, but not at
> >>> the cdc_mbim or cdc_ncm level, anyway not sure, so I'm reporting the
> >>> issue.
> >>>
> >>> My kernel is 4.16. The device is the following:
> >>
> >> Does older kernels work, or is this something that has always been
> >> there?
> >>
> >
> > Not tested yet, I'm going to do.
> >
> 
> So, ping with more than 14552 was working properly until v4.5-rc7:
> starting from v4.5 I'm not even able to make a data connection with
> mbim since things fail badly with the following:
> 
> [  259.551836] ------------[ cut here ]------------
> [  259.551848] WARNING: CPU: 2 PID: 0 at
> /home/kernel/COD/linux/net/sched/sch_generic.c:303
> dev_watchdog+0x237/0x240()
> [  259.551860] NETDEV WATCHDOG: wwp0s20u7i2 (cdc_mbim): transmit queue
> 0 timed out
> [  259.551861] Modules linked in: cdc_mbim cdc_wdm cdc_ncm usbnet mii
> intel_rapl x86_pkg_temp_thermal intel_powerclamp coretemp kvm
> snd_hda_codec_realtek snd_hda_codec_hdmi snd_hda_codec_generic
> irqbypass crct10dif_pclmul snd_hda_intel snd_hda_codec snd_hda_core
> crc32_pclmul snd_hwdep ghash_clmulni_intel aesni_intel aes_x86_64
> snd_pcm snd_seq_midi lrw snd_seq_midi_event gf128mul input_leds
> snd_rawmidi snd_seq glue_helper snd_seq_device ablk_helper snd_timer
> cryptd snd soundcore shpchp serio_raw mac_hid lpc_ich 8250_fintek
> mei_me mei parport_pc ppdev lp parport autofs4 hid_generic usbhid hid
> i915 i2c_algo_bit drm_kms_helper syscopyarea sysfillrect psmouse
> sysimgblt ahci fb_sys_fops e1000e libahci drm ptp pps_core wmi fjes
> video
> [  259.551889] CPU: 2 PID: 0 Comm: swapper/2 Not tainted
> 4.5.0-040500-generic #201603140130
> [  259.551890] Hardware name: LENOVO 10A6A0J5IX/SHARKBAY, BIOS
> FBKT79AUS 04/17/2014
> [  259.551891]  0000000000000286 108c91d75cf5b65f ffff88021eb03d98
> ffffffff813e0233
> [  259.551893]  ffff88021eb03de0 ffffffff81d816a0 ffff88021eb03dd0
> ffffffff81080e72
> [  259.551894]  0000000000000000 ffff8800cee81880 0000000000000002
> ffff8800a19f8000
> [  259.551895] Call Trace:
> [  259.551896]  <IRQ>  [<ffffffff813e0233>] dump_stack+0x63/0x90
> [  259.551903]  [<ffffffff81080e72>] warn_slowpath_common+0x82/0xc0
> [  259.551904]  [<ffffffff81080f0c>] warn_slowpath_fmt+0x5c/0x80
> [  259.551907]  [<ffffffff8173f557>] dev_watchdog+0x237/0x240
> [  259.551909]  [<ffffffff8173f320>] ? qdisc_rcu_free+0x40/0x40
> [  259.551910]  [<ffffffff810ecc75>] call_timer_fn+0x35/0x120
> [  259.551911]  [<ffffffff8173f320>] ? qdisc_rcu_free+0x40/0x40
> [  259.551912]  [<ffffffff810ed626>] run_timer_softirq+0x246/0x2f0
> [  259.551914]  [<ffffffff81085836>] __do_softirq+0xf6/0x280
> [  259.551916]  [<ffffffff81085b33>] irq_exit+0xa3/0xb0
> [  259.551919]  [<ffffffff81826092>] smp_apic_timer_interrupt+0x42/0x50
> [  259.551920]  [<ffffffff81824362>] apic_timer_interrupt+0x82/0x90
> [  259.551922]  <EOI>  [<ffffffff816b669d>] ? cpuidle_enter_state+0x11d/0x2c0
> [  259.551925]  [<ffffffff816b6877>] cpuidle_enter+0x17/0x20
> [  259.551928]  [<ffffffff810c413a>] call_cpuidle+0x2a/0x40
> [  259.551929]  [<ffffffff810c4505>] cpu_startup_entry+0x295/0x350
> [  259.551931]  [<ffffffff81050d9e>] start_secondary+0x15e/0x190
> [  259.551933] ---[ end trace 6f8d3c1a1b02644d ]---
> 
> but this is probably something different, cause with v4.16 data
> connection works fine.
> 
> If this is not helpful I guess I need to bisect.

Bisection would be best.  It looks like you narrowed things down really
well already, bisection should go very quickly.

thanks,

greg k-h