Re: [LKP] [lkp] [gpio] 3c702e9987: kmsg.user_verbs:couldn't_register_device_number
On Tue, Feb 23, 2016 at 7:35 AM, Huang, Ying wrote: >> On Mon, Feb 15, 2016 at 3:39 AM, Huang, Ying wrote: >>> Michael Welling writes: >> Then dmesg |grep CHARDEV should tell what we need to know. > > Sorry for late, the dmesg with the patch is attached. And the output of > dmesg | grep CHARDEV is as follow: > > [0.750037] CHARDEV: allocate major 254 for "gpiochip" > [0.897928] CHARDEV: allocate major 253 for "tpm" > [0.904196] CHARDEV: allocate major 252 for "ndctl" > [0.905295] CHARDEV: allocate major 251 for "dimmctl" > [0.909573] CHARDEV: allocate major 250 for "pps" > [0.913740] CHARDEV: allocate major 249 for "ptp" > [0.916711] CHARDEV: allocate major 248 for "iio" > [1.227597] CHARDEV: allocate major 247 for "bsg" > [1.577194] CHARDEV: allocate major 246 for "gsmtty" > [1.614921] CHARDEV: allocate major 245 for "ttyn" > [1.616044] CHARDEV: allocate major 244 for "ttyARC" > [1.617177] CHARDEV: allocate major 243 for "ttyRP" > [1.618310] CHARDEV: allocate major 242 for "ttyLP" > [1.620618] CHARDEV: allocate major 241 for "noz" > [1.621707] CHARDEV: allocate major 240 for "ttyIPWp" > [1.630024] CHARDEV: allocate major 239 for "telco_clock" > [1.632315] CHARDEV: allocate major 239 for "cmm" > [1.681375] CHARDEV: allocate major 238 for "hpilo" > [1.696757] CHARDEV: allocate major 237 for "aac" > [1.699338] CHARDEV: allocate major 236 for "megadev_legacy" > [1.704680] CHARDEV: allocate major 235 for "megaraid_sas_ioctl" > [1.731179] CHARDEV: allocate major 234 for "pmcsas" > [1.737520] CHARDEV: allocate major 233 for "nvme" > [2.388531] CHARDEV: allocate major 232 for "firewire" > [2.389743] CHARDEV: allocate major 231 for "uio" > [2.904429] CHARDEV: allocate major 230 for "ttySDIO" > [2.922374] CHARDEV: allocate major 229 for "ib_qib" > [2.927559] CHARDEV: allocate major 228 for "hidraw" > [2.952328] CHARDEV: allocate major 227 for "fwtty" > [2.953435] CHARDEV: allocate major 225 for "fwloop" Oh that's a complete train wreck. Well I will keep working on the patch to improve dynamic allocation of majors that I'm reiterating with Torvalds in the look. Yours, Linus Walleij
Re: [LKP] [lkp] [gpio] 3c702e9987: kmsg.user_verbs:couldn't_register_device_number
On Tue, Feb 23, 2016 at 02:35:14PM +0800, Huang, Ying wrote: > Linus Walleij writes: > > > On Mon, Feb 15, 2016 at 3:39 AM, Huang, Ying wrote: > >> Michael Welling writes: > > > >>> Could you run cat /proc/devices? > >> > >> Sorry, the test mechanism is not flexible enough to run some shell > >> command in test system. Could you provide a specialized debug kernel to > >> dump the necessary information in kernel log? We can collect dmesg > >> easily. > > > > Can you try this: > > > > diff --git a/fs/char_dev.c b/fs/char_dev.c > > index 24b142569ca9..74a2d433273e 100644 > > --- a/fs/char_dev.c > > +++ b/fs/char_dev.c > > @@ -96,6 +96,8 @@ __register_chrdev_region(unsigned int major, > > unsigned int baseminor, > > goto out; > > } > > major = i; > > +pr_info("CHARDEV: allocate major %d for \"%s\"\n", > > +i, name); > > } > > > > cd->major = major; > > > > Then dmesg |grep CHARDEV should tell what we need to know. > > Sorry for late, the dmesg with the patch is attached. And the output of > dmesg | grep CHARDEV is as follow: > > [0.750037] CHARDEV: allocate major 254 for "gpiochip" > [0.897928] CHARDEV: allocate major 253 for "tpm" > [0.904196] CHARDEV: allocate major 252 for "ndctl" > [0.905295] CHARDEV: allocate major 251 for "dimmctl" > [0.909573] CHARDEV: allocate major 250 for "pps" > [0.913740] CHARDEV: allocate major 249 for "ptp" > [0.916711] CHARDEV: allocate major 248 for "iio" > [1.227597] CHARDEV: allocate major 247 for "bsg" > [1.577194] CHARDEV: allocate major 246 for "gsmtty" > [1.614921] CHARDEV: allocate major 245 for "ttyn" > [1.616044] CHARDEV: allocate major 244 for "ttyARC" > [1.617177] CHARDEV: allocate major 243 for "ttyRP" > [1.618310] CHARDEV: allocate major 242 for "ttyLP" > [1.620618] CHARDEV: allocate major 241 for "noz" > [1.621707] CHARDEV: allocate major 240 for "ttyIPWp" > [1.630024] CHARDEV: allocate major 239 for "telco_clock" > [1.632315] CHARDEV: allocate major 239 for "cmm" > [1.681375] CHARDEV: allocate major 238 for "hpilo" > [1.696757] CHARDEV: allocate major 237 for "aac" > [1.699338] CHARDEV: allocate major 236 for "megadev_legacy" > [1.704680] CHARDEV: allocate major 235 for "megaraid_sas_ioctl" > [1.731179] CHARDEV: allocate major 234 for "pmcsas" Not sure how this is the first time this problem has come up. There is an obvious overlap here into the statically allocated region. > [1.737520] CHARDEV: allocate major 233 for "nvme" > [2.388531] CHARDEV: allocate major 232 for "firewire" > [2.389743] CHARDEV: allocate major 231 for "uio" > [2.904429] CHARDEV: allocate major 230 for "ttySDIO" > [2.922374] CHARDEV: allocate major 229 for "ib_qib" > [2.927559] CHARDEV: allocate major 228 for "hidraw" > [2.952328] CHARDEV: allocate major 227 for "fwtty" > [2.953435] CHARDEV: allocate major 225 for "fwloop" > > Best Regards, > Huang, Ying
Re: [LKP] [lkp] [gpio] 3c702e9987: kmsg.user_verbs:couldn't_register_device_number
Linus Walleij writes: > On Mon, Feb 15, 2016 at 3:39 AM, Huang, Ying wrote: >> Michael Welling writes: > >>> Could you run cat /proc/devices? >> >> Sorry, the test mechanism is not flexible enough to run some shell >> command in test system. Could you provide a specialized debug kernel to >> dump the necessary information in kernel log? We can collect dmesg >> easily. > > Can you try this: > > diff --git a/fs/char_dev.c b/fs/char_dev.c > index 24b142569ca9..74a2d433273e 100644 > --- a/fs/char_dev.c > +++ b/fs/char_dev.c > @@ -96,6 +96,8 @@ __register_chrdev_region(unsigned int major, > unsigned int baseminor, > goto out; > } > major = i; > +pr_info("CHARDEV: allocate major %d for \"%s\"\n", > +i, name); > } > > cd->major = major; > > Then dmesg |grep CHARDEV should tell what we need to know. Sorry for late, the dmesg with the patch is attached. And the output of dmesg | grep CHARDEV is as follow: [0.750037] CHARDEV: allocate major 254 for "gpiochip" [0.897928] CHARDEV: allocate major 253 for "tpm" [0.904196] CHARDEV: allocate major 252 for "ndctl" [0.905295] CHARDEV: allocate major 251 for "dimmctl" [0.909573] CHARDEV: allocate major 250 for "pps" [0.913740] CHARDEV: allocate major 249 for "ptp" [0.916711] CHARDEV: allocate major 248 for "iio" [1.227597] CHARDEV: allocate major 247 for "bsg" [1.577194] CHARDEV: allocate major 246 for "gsmtty" [1.614921] CHARDEV: allocate major 245 for "ttyn" [1.616044] CHARDEV: allocate major 244 for "ttyARC" [1.617177] CHARDEV: allocate major 243 for "ttyRP" [1.618310] CHARDEV: allocate major 242 for "ttyLP" [1.620618] CHARDEV: allocate major 241 for "noz" [1.621707] CHARDEV: allocate major 240 for "ttyIPWp" [1.630024] CHARDEV: allocate major 239 for "telco_clock" [1.632315] CHARDEV: allocate major 239 for "cmm" [1.681375] CHARDEV: allocate major 238 for "hpilo" [1.696757] CHARDEV: allocate major 237 for "aac" [1.699338] CHARDEV: allocate major 236 for "megadev_legacy" [1.704680] CHARDEV: allocate major 235 for "megaraid_sas_ioctl" [1.731179] CHARDEV: allocate major 234 for "pmcsas" [1.737520] CHARDEV: allocate major 233 for "nvme" [2.388531] CHARDEV: allocate major 232 for "firewire" [2.389743] CHARDEV: allocate major 231 for "uio" [2.904429] CHARDEV: allocate major 230 for "ttySDIO" [2.922374] CHARDEV: allocate major 229 for "ib_qib" [2.927559] CHARDEV: allocate major 228 for "hidraw" [2.952328] CHARDEV: allocate major 227 for "fwtty" [2.953435] CHARDEV: allocate major 225 for "fwloop" Best Regards, Huang, Ying dmesg.xz Description: application/xz
Re: [LKP] [lkp] [gpio] 3c702e9987: kmsg.user_verbs:couldn't_register_device_number
On Mon, Feb 15, 2016 at 3:39 AM, Huang, Ying wrote: > Michael Welling writes: >> Could you run cat /proc/devices? > > Sorry, the test mechanism is not flexible enough to run some shell > command in test system. Could you provide a specialized debug kernel to > dump the necessary information in kernel log? We can collect dmesg > easily. Can you try this: diff --git a/fs/char_dev.c b/fs/char_dev.c index 24b142569ca9..74a2d433273e 100644 --- a/fs/char_dev.c +++ b/fs/char_dev.c @@ -96,6 +96,8 @@ __register_chrdev_region(unsigned int major, unsigned int baseminor, goto out; } major = i; +pr_info("CHARDEV: allocate major %d for \"%s\"\n", +i, name); } cd->major = major; Then dmesg |grep CHARDEV should tell what we need to know. Yours, Linus Walleij
Re: [LKP] [lkp] [gpio] 3c702e9987: kmsg.user_verbs:couldn't_register_device_number
Michael Welling writes: > On Sun, Feb 14, 2016 at 02:59:06PM +0800, kernel test robot wrote: >> FYI, we noticed the below changes on >> >> https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git chardev >> commit 3c702e9987e261042a07e43460a8148be254412e ("gpio: add a userspace >> chardev ABI for GPIOs") >> >> >> [1.951191] user_verbs: couldn't register device number > > Looks like user_verbs is using a static device node setup. > > enum { > IB_UVERBS_MAJOR = 231, > IB_UVERBS_BASE_MINOR = 192, > IB_UVERBS_MAX_DEVICES = 32 > }; > > #define IB_UVERBS_BASE_DEV MKDEV(IB_UVERBS_MAJOR, IB_UVERBS_BASE_MINOR) > > Something tells me that a new GPIO chardev is taking this spot. > > It looks like the device is documented to be using the range: > https://www.kernel.org/doc/Documentation/devices.txt > > Could you run cat /proc/devices? > Sorry, the test mechanism is not flexible enough to run some shell command in test system. Could you provide a specialized debug kernel to dump the necessary information in kernel log? We can collect dmesg easily. Best Regards, Huang, Ying