lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Thu, 1 Sep 2022 04:46:56 +0000
From:   Wei Fang <wei.fang@....com>
To:     Jakub Kicinski <kuba@...nel.org>
CC:     "davem@...emloft.net" <davem@...emloft.net>,
        "edumazet@...gle.com" <edumazet@...gle.com>,
        "pabeni@...hat.com" <pabeni@...hat.com>,
        "netdev@...r.kernel.org" <netdev@...r.kernel.org>,
        "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: RE: [PATCH net] net: fec: add pm_qos support on imx6q platform



> -----Original Message-----
> From: Jakub Kicinski <kuba@...nel.org>
> Sent: 2022年9月1日 10:36
> To: Wei Fang <wei.fang@....com>
> Cc: davem@...emloft.net; edumazet@...gle.com; pabeni@...hat.com;
> netdev@...r.kernel.org; linux-kernel@...r.kernel.org
> Subject: Re: [PATCH net] net: fec: add pm_qos support on imx6q platform
> 
> On Tue, 30 Aug 2022 15:01:48 +0800 wei.fang@....com wrote:
> > There is a very low probability that tx timeout will occur during
> > suspend and resume stress test on imx6q platform. So we add pm_qos
> > support to prevent system from entering low level idles which may
> > affect the transmission of tx.
> 
> Any more info on the issue? Is there an errata for it?
> What's the expected power consumption change?

On imx6q platform, cpuidle has some levels which may disable system/bus clocks,
this may cause tx packets can not be sent in time and the ndo_tx_timeout()
will be called. Seeing the following console logs for details.

[ 5170.028381] ------------[ cut here ]------------
[ 5170.033795] WARNING: CPU: 0 PID: 0 at net/sched/sch_generic.c:454 dev_watchdog+0x394/0x3c8
[ 5170.042153] NETDEV WATCHDOG: eth0 (fec): transmit queue 0 timed out
[ 5170.048494] Modules linked in: snvs_ui(O) mxc_v4l2_capture ipu_bg_overlay_sdc ipu_still ipu_prp_enc ipu_csi_enc ipu_fg_overlay_sdc imx_vdoa ov5640_camera_mipi_int ov5640_camera_int v4l2_int_device galcore(O) [last unloaded: snvs_ui]
[ 5170.069267] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G           O      5.4.0-rc7-5.4-zeus-next+g56a9ca3b7f4e #1
[ 5170.079313] Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree)
[ 5170.085920] [<c0112e30>] (unwind_backtrace) from [<c010cdc0>] (show_stack+0x10/0x14)
[ 5170.093724] [<c010cdc0>] (show_stack) from [<c0d2a73c>] (dump_stack+0xe0/0x114)
[ 5170.101089] [<c0d2a73c>] (dump_stack) from [<c0137380>] (__warn+0xc0/0x10c)
[ 5170.108104] [<c0137380>] (__warn) from [<c0137780>] (warn_slowpath_fmt+0x90/0xc0)
[ 5170.115644] [<c0137780>] (warn_slowpath_fmt) from [<c0ab1730>] (dev_watchdog+0x394/0x3c8)
[ 5170.123877] [<c0ab1730>] (dev_watchdog) from [<c01c47fc>] (call_timer_fn+0xc0/0x320)
[ 5170.131672] [<c01c47fc>] (call_timer_fn) from [<c01c5114>] (run_timer_softirq+0x210/0x688)
[ 5170.139991] [<c01c5114>] (run_timer_softirq) from [<c0102314>] (__do_softirq+0xf4/0x50c)
[ 5170.148139] [<c0102314>] (__do_softirq) from [<c013f094>] (irq_exit+0x128/0x180)
[ 5170.155595] [<c013f094>] (irq_exit) from [<c01a1420>] (__handle_domain_irq+0x6c/0xdc)
[ 5170.163492] [<c01a1420>] (__handle_domain_irq) from [<c054bcd0>] (gic_handle_irq+0x48/0x9c)
[ 5170.171900] [<c054bcd0>] (gic_handle_irq) from [<c0101a70>] (__irq_svc+0x70/0x98)
[ 5170.178527] regulator regulator.5: Failed to increase supply voltage: -110
[ 5170.179418] Exception stack(0xc1401ed8 to 0xc1401f20)
[ 5170.179519] 1ec0:                                                       00000001 00000006
[ 5170.179546] 1ee0: 00000000 c140c600 00000000 af6bbd9b c140f934 db6ebdb8 c1504668 000004b3
[ 5170.179572] 1f00: 000004b3 bdb0c416 00000000 c1401f28 c0194520 c0938fcc 20010013 ffffffff
[ 5170.216432] [<c0101a70>] (__irq_svc) from [<c0938fcc>] (cpuidle_enter_state+0x16c/0x520)
[ 5170.224584] [<c0938fcc>] (cpuidle_enter_state) from [<c09393bc>] (cpuidle_enter+0x28/0x38)
[ 5170.232913] [<c09393bc>] (cpuidle_enter) from [<c016f6a4>] (do_idle+0x1dc/0x2b0)
[ 5170.240367] [<c016f6a4>] (do_idle) from [<c016fb2c>] (cpu_startup_entry+0x18/0x1c)
[ 5170.248002] [<c016fb2c>] (cpu_startup_entry) from [<c1300e20>] (start_kernel+0x404/0x4cc)
[ 5170.256598] irq event stamp: 51412072
[ 5170.260390] hardirqs last  enabled at (51412084): [<c0101a74>] __irq_svc+0x74/0x98
[ 5170.268076] hardirqs last disabled at (51412095): [<c0101a60>] __irq_svc+0x60/0x98
[ 5170.275767] softirqs last  enabled at (51411992): [<c013ef50>] irq_enter+0x68/0x84
[ 5170.283455] softirqs last disabled at (51411993): [<c013f094>] irq_exit+0x128/0x180
[ 5170.291217] ---[ end trace 781c3e037025657e ]---
[ 5170.295951] fec 2188000.ethernet eth0: TX ring dump
[ 5170.300930] Nr     SC     addr       len  SKB
[ 5170.305398]   0    0x0400 0x00000000   66 322bbb12
[ 5170.310296]   1    0x0400 0x00000000  124 322bbb12
[ 5170.315139]   2    0x0400 0x00000000  112 322bbb12
[ 5170.319957]   3  H 0x1c00 0x00000000  112 322bbb12
[ 5170.324775]   4    0x1c00 0x28933800  130 2734ee11
[ 5170.329593]   5    0x1c00 0x28934000  130 f36d5b3e
[ 5170.334410]   6    0x0400 0x28934800   66 322bbb12
[ 5170.339227]   7    0x0400 0x29030000  124 322bbb12
[ 5170.344097]   8    0x0400 0x29a48000  112 322bbb12
[ 5170.348997]   9    0x1c00 0x294e8000  112 dbee6d93
[ 5170.353895]  10    0x0400 0x28936800   66 322bbb12
[ 5170.358791]  11    0x0400 0x294e8070  112 322bbb12
[ 5170.363687]  12    0x0400 0x29d40000  112 322bbb12
[ 5170.368585]  13    0x0400 0x29250000  112 322bbb12
[ 5170.373483]  14    0x0400 0x29b38000  112 322bbb12
[ 5170.378350]  15    0x0400 0x29bd0000  112 322bbb12
[ 5170.383216]  16    0x0400 0x29110000  112 322bbb12
[ 5170.388083]  17    0x0400 0x29590000  112 322bbb12

So we add pm_qos to prevent cpuidle from entering low level
idles and make sure system/bus clocks are enabled.

In terms of power consumption changes, we did not measure the change, but
there will be some increase.

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ