All of lore.kernel.org
 help / color / mirror / Atom feed
From: Guenter Roeck <linux@roeck-us.net>
To: Saravana Kannan <saravanak@google.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	linux-kernel@vger.kernel.org,
	John Stultz <john.stultz@linaro.org>,
	kernel-team@android.com
Subject: Re: [PATCH v3 1/3] driver core: Expose device link details in sysfs
Date: Wed, 15 Jul 2020 15:13:56 -0700	[thread overview]
Message-ID: <20200715221356.GA219557@roeck-us.net> (raw)
In-Reply-To: <20200521191800.136035-2-saravanak@google.com>

Hi,

On Thu, May 21, 2020 at 12:17:58PM -0700, Saravana Kannan wrote:
> It's helpful to be able to look at device link details from sysfs. So,
> expose it in sysfs.
> 
> Say device-A is supplier of device-B. These are the additional files
> this patch would create:
> 
> /sys/class/devlink/device-A:device-B/
> 	auto_remove_on
> 	consumer/ -> .../device-B/
> 	runtime_pm
> 	status
> 	supplier/ -> .../device-A/
> 	sync_state_only
> 
> /sys/devices/.../device-A/
> 	consumer:device-B/ -> /sys/class/devlink/device-A:device-B/
> 
> /sys/devices/.../device-B/
> 	supplier:device-A/ -> /sys/class/devlink/device-A:device-B/
> 
> That way:
> To get a list of all the device link in the system:
> ls /sys/class/devlink/
> 
> To get the consumer names and links of a device:
> ls -d /sys/devices/.../device-X/consumer:*
> 
> To get the supplier names and links of a device:
> ls -d /sys/devices/.../device-X/supplier:*
> 
> Signed-off-by: Saravana Kannan <saravanak@google.com>

This patch creates a lot of noise in linux-next when booting various
qemu images. Example log output as well as bisect results below.
Reverting the patch fixes the problem.

Guenter

---
BUG: sleeping function called from invalid context at kernel/locking/mutex.c:935
in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 13, name: kworker/0:1
2 locks held by kworker/0:1/13:
 #0: c78048a4 ((wq_completion)rcu_gp){+.+.}-{0:0}, at: process_one_work+0x1a0/0x728
 #1: c78ebf18 ((work_completion)(&sdp->work)){+.+.}-{0:0}, at: process_one_work+0x1a0/0x728
Preemption disabled at:
[<c0085bb4>] srcu_invoke_callbacks+0xc0/0x158
CPU: 0 PID: 13 Comm: kworker/0:1 Not tainted 5.8.0-rc5-next-20200715 #1
Hardware name: Freescale i.MX25 (Device Tree Support)
Workqueue: rcu_gp srcu_invoke_callbacks
[<c0010fe4>] (unwind_backtrace) from [<c000e740>] (show_stack+0x10/0x18)
[<c000e740>] (show_stack) from [<c050985c>] (dump_stack+0x20/0x2c)
[<c050985c>] (dump_stack) from [<c00496e4>] (___might_sleep+0x1d0/0x2cc)
[<c00496e4>] (___might_sleep) from [<c09105e8>] (__mutex_lock+0x38/0x654)
[<c09105e8>] (__mutex_lock) from [<c0910c20>] (mutex_lock_nested+0x1c/0x28)
[<c0910c20>] (mutex_lock_nested) from [<c05b25dc>] (device_del+0x2c/0x3f0)
[<c05b25dc>] (device_del) from [<c05b2a10>] (__device_link_free_srcu+0x50/0x64)
[<c05b2a10>] (__device_link_free_srcu) from [<c0085bc4>] (srcu_invoke_callbacks+0xd0/0x158)
[<c0085bc4>] (srcu_invoke_callbacks) from [<c003ad2c>] (process_one_work+0x284/0x728)
[<c003ad2c>] (process_one_work) from [<c003b1fc>] (worker_thread+0x2c/0x52c)
[<c003b1fc>] (worker_thread) from [<c0042df8>] (kthread+0x154/0x180)
[<c0042df8>] (kthread) from [<c0008530>] (ret_from_fork+0x14/0x24)
Exception stack(0xc78ebfb0 to 0xc78ebff8)
bfa0:                                     00000000 00000000 00000000 00000000
bfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
bfe0: 00000000 00000000 00000000 00000000 00000013 00000000
BUG: scheduling while atomic: kworker/0:1/13/0x00000201
3 locks held by kworker/0:1/13:
 #0: c78048a4 ((wq_completion)rcu_gp){+.+.}-{0:0}, at: process_one_work+0x1a0/0x728
 #1: c78ebf18 ((work_completion)(&sdp->work)){+.+.}-{0:0}, at: process_one_work+0x1a0/0x728
 #2: c0cf5710 (gdp_mutex){+.+.}-{3:3}, at: cleanup_glue_dir.part.14+0x14/0xa0
Modules linked in:
Preemption disabled at:
[<c0085bb4>] srcu_invoke_callbacks+0xc0/0x158
CPU: 0 PID: 13 Comm: kworker/0:1 Tainted: G        W         5.8.0-rc5-next-20200715 #1
Hardware name: Freescale i.MX25 (Device Tree Support)
Workqueue: rcu_gp srcu_invoke_callbacks
[<c0010fe4>] (unwind_backtrace) from [<c000e740>] (show_stack+0x10/0x18)
[<c000e740>] (show_stack) from [<c050985c>] (dump_stack+0x20/0x2c)
[<c050985c>] (dump_stack) from [<c0049910>] (__schedule_bug+0x88/0xf0)
[<c0049910>] (__schedule_bug) from [<c090e148>] (__schedule+0x5f0/0x824)
[<c090e148>] (__schedule) from [<c090e3d0>] (schedule+0x54/0x128)
[<c090e3d0>] (schedule) from [<c090e838>] (schedule_preempt_disabled+0x14/0x28)
[<c090e838>] (schedule_preempt_disabled) from [<c0910744>] (__mutex_lock+0x194/0x654)
[<c0910744>] (__mutex_lock) from [<c0910c20>] (mutex_lock_nested+0x1c/0x28)
[<c0910c20>] (mutex_lock_nested) from [<c05b1d5c>] (cleanup_glue_dir.part.14+0x14/0xa0)
[<c05b1d5c>] (cleanup_glue_dir.part.14) from [<c05b296c>] (device_del+0x3bc/0x3f0)
[<c05b296c>] (device_del) from [<c05b2a10>] (__device_link_free_srcu+0x50/0x64)
[<c05b2a10>] (__device_link_free_srcu) from [<c0085bc4>] (srcu_invoke_callbacks+0xd0/0x158)
[<c0085bc4>] (srcu_invoke_callbacks) from [<c003ad2c>] (process_one_work+0x284/0x728)
[<c003ad2c>] (process_one_work) from [<c003b1fc>] (worker_thread+0x2c/0x52c)
[<c003b1fc>] (worker_thread) from [<c0042df8>] (kthread+0x154/0x180)
[<c0042df8>] (kthread) from [<c0008530>] (ret_from_fork+0x14/0x24)
Exception stack(0xc78ebfb0 to 0xc78ebff8)
bfa0:                                     00000000 00000000 00000000 00000000
bfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
bfe0: 00000000 00000000 00000000 00000000 00000013 00000000
------------[ cut here ]------------

---
# bad: [ca0e494af5edb59002665bf12871e94b4163a257] Add linux-next specific files for 20200715
# good: [11ba468877bb23f28956a35e896356252d63c983] Linux 5.8-rc5
git bisect start 'HEAD' 'v5.8-rc5'
# good: [8a21074e4724ce86b4e1a8fdc271081a86303014] Merge remote-tracking branch 'crypto/master'
git bisect good 8a21074e4724ce86b4e1a8fdc271081a86303014
# good: [71f459b5cd96681f615e5c920b3a38ab89e8b5f1] Merge remote-tracking branch 'audit/next'
git bisect good 71f459b5cd96681f615e5c920b3a38ab89e8b5f1
# bad: [5a310f73f874211ee7aa570b308d50def85aff1c] Merge remote-tracking branch 'thunderbolt/next'
git bisect bad 5a310f73f874211ee7aa570b308d50def85aff1c
# good: [db01f1b1e840f46bdd64c6c846e7b3246bdff55a] Merge remote-tracking branch 'kvm/linux-next'
git bisect good db01f1b1e840f46bdd64c6c846e7b3246bdff55a
# bad: [89947fbc4b34bfdef7ade2b26274e78b32d4e39f] Merge remote-tracking branch 'usb/usb-next'
git bisect bad 89947fbc4b34bfdef7ade2b26274e78b32d4e39f
# bad: [c845fc08689b52c05c0201614ac89f7978caa169] Merge remote-tracking branch 'driver-core/driver-core-next'
git bisect bad c845fc08689b52c05c0201614ac89f7978caa169
# good: [4621ddca720ceb9b45725acd428e0389e3c0b59b] Merge remote-tracking branch 'drivers-x86/for-next'
git bisect good 4621ddca720ceb9b45725acd428e0389e3c0b59b
# good: [fac3dee864e971dff81dd4969c361b2b373109c0] Merge remote-tracking branch 'leds/for-next'
git bisect good fac3dee864e971dff81dd4969c361b2b373109c0
# good: [55c7549819e438f40a3ef1d8ac5c38b73390bcb7] scripts: add dummy report mode to add_namespace.cocci
git bisect good 55c7549819e438f40a3ef1d8ac5c38b73390bcb7
# good: [fe940d7362e6d7a5e5086581d0462e00ba766992] driver core: Drop mention of obsolete bus rwsem from kernel-doc
git bisect good fe940d7362e6d7a5e5086581d0462e00ba766992
# bad: [da6d647598a6d182eb6a0344a7b14ae005244399] driver core: Add waiting_for_supplier sysfs file for devices
git bisect bad da6d647598a6d182eb6a0344a7b14ae005244399
# bad: [8fd456ec0cf03875908d6b67c1cd20cf0a7b4474] driver core: Add state_synced sysfs file for devices that support it
git bisect bad 8fd456ec0cf03875908d6b67c1cd20cf0a7b4474
# bad: [287905e68dd29873bcb7986a8290cd1e4cfde600] driver core: Expose device link details in sysfs
git bisect bad 287905e68dd29873bcb7986a8290cd1e4cfde600
# first bad commit: [287905e68dd29873bcb7986a8290cd1e4cfde600] driver core: Expose device link details in sysfs

  reply	other threads:[~2020-07-15 22:14 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-21 19:17 [PATCH v3 0/3] driver core: Add device link related sysfs files Saravana Kannan
2020-05-21 19:17 ` [PATCH v3 1/3] driver core: Expose device link details in sysfs Saravana Kannan
2020-07-15 22:13   ` Guenter Roeck [this message]
2020-07-15 22:36     ` Saravana Kannan
2020-05-21 19:17 ` [PATCH v3 2/3] driver core: Add state_synced sysfs file for devices that support it Saravana Kannan
2020-05-21 19:18 ` [PATCH v3 3/3] driver core: Add waiting_for_supplier sysfs file for devices Saravana Kannan
2020-05-28 21:18 ` [PATCH v3 0/3] driver core: Add device link related sysfs files Saravana Kannan
2020-05-29 12:30   ` Greg Kroah-Hartman
2020-06-17  3:45     ` Saravana Kannan
2020-07-06 22:45       ` Saravana Kannan
2020-07-10 13:23         ` Greg Kroah-Hartman
2020-07-10 20:39           ` Saravana Kannan
     [not found]           ` <CGME20200715082233eucas1p261d4c5133226b800c3656c9010aa5940@eucas1p2.samsung.com>
2020-07-15  8:22             ` Marek Szyprowski
2020-07-15  8:53               ` Saravana Kannan
2020-07-15  9:02                 ` Marek Szyprowski

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=20200715221356.GA219557@roeck-us.net \
    --to=linux@roeck-us.net \
    --cc=gregkh@linuxfoundation.org \
    --cc=john.stultz@linaro.org \
    --cc=kernel-team@android.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rafael@kernel.org \
    --cc=saravanak@google.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.