From: Zhenzhong Duan <zhenzhong.duan@oracle.com>
To: Yinghai Lu <yinghai@kernel.org>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
Rusty Russell <rusty@rustcorp.com.au>,
Ashok Raj <ashok.raj@intel.com>,
LKML <linux-kernel@vger.kernel.org>,
Feng Jin <joe.jin@oracle.com>
Subject: Re: Question with maxcpus= parameter.
Date: Mon, 9 Nov 2015 17:09:34 +0800 [thread overview]
Message-ID: <564062CE.90106@oracle.com> (raw)
In-Reply-To: <CAE9FiQUEsJgqhx=SZm4Bt3c_9_fM8LPgmmSQzS51hrZEsNpKGg@mail.gmail.com>
在 2015/11/9 14:12, Yinghai Lu 写道:
> On Sun, Nov 8, 2015 at 9:47 PM, Zhenzhong Duan
> <zhenzhong.duan@oracle.com> wrote:
>> Tried nr_cpus=4, works.
>>
> nr_cpus and maxcpus are different.
>
> maxcpus=4 means kernel will only bring up 4 cpus, but other cpus still
> can be brought up online.
> if there are more cpu are there according acpi MADT.
>
> nr_cpus=4 that means 4 is hard limit, just like you compiled kernel
> with CONFIG_NR_CPUS=4.
I know that, what confused me is uek2(2.6.39-400.249.4.el6uek.x86_64)
works with maxcpus=,
but uek3(3.8.13-44.1.1.el6uek.x86_64) not when I don't comment out the
script.
I have ever suspected uek2 send CPU ADD event for only 4 cpus.
dyndbg="file kobject_uevent.c +p" is used when debug, vimdiff with both
dmesg:
uek2 | uek3
......
PCI: Using configuration type 1 for base
access | PCI: Using configuration
type 1 for base access
kobject: 'node0' (ffffffff81d6c9d0):
kobject_uevent_env | kobject: 'node0'
(ffff883f25984410): kobject_uevent_env
kobject: 'cpu0' (ffff88407ec0b2f8):
kobject_uevent_env | kobject: 'cpu0'
(ffff883f7ec0c3d8): kobject_uevent_env
kobject: 'cpu1' (ffff88407ec2b2f8):
kobject_uevent_env | kobject: 'cpu1'
(ffff883f7ec2c3d8): kobject_uevent_env
......
kobject: 'cpu70' (ffff88407f4cb2f8):
kobject_uevent_env | kobject: 'cpu70'
(ffff883f7f4cc3d8): kobject_uevent_env
kobject: 'cpu71' (ffff88407f4eb2f8):
kobject_uevent_env | kobject: 'cpu71'
(ffff883f7f4ec3d8): kobject_uevent_env
......
dracut: dracut-004-356.0.1.el6 | dracut:
dracut-004-356.0.1.el6
dracut: rd_NO_LUKS: removing cryptoluks
activation | dracut: rd_NO_LUKS: removing
cryptoluks activation
kobject: 'dm_mod' (ffffffffa000e290):
kobject_uevent_env | kobject: 'dm_mod'
(ffffffffa000f3b0): kobject_uevent_env
device-mapper: uevent: version
1.0.3 |
device-mapper: uevent: version 1.0.3
udev: starting version 147 | udev: starting version 147
......
kobject: 'cpu0' (ffff883f0076dc10):
kobject_uevent_env | kobject: 'cpu0'
(ffff883f7ec0c3d8): kobject_uevent_env
kobject: 'cpu1' (ffff883f0076d810):
kobject_uevent_env | kobject: 'cpu1'
(ffff883f7ec2c3d8): kobject_uevent_env
kobject: 'cpu2' (ffff883f0076d410):
kobject_uevent_env | kobject: 'cpu10'
(ffff883f7ed4c3d8): kobject_uevent_env
kobject: 'cpu3' (ffff883f0076d010):
kobject_uevent_env | kobject: 'cpu11'
(ffff883f7ed6c3d8): kobject_uevent_env
kobject: 'id' (ffff883f05716c10):
kobject_uevent_env | kobject: 'cpu12'
(ffff883f7ed8c3d8): kobject_uevent_env
kobject: 'fbcon' (ffff883f05779c10):
kobject_uevent_env | kobject: 'cpu13'
(ffff883f7f42c3d8): kobject_uevent_env
...... | ...... (total 72 cpus)
dracut: | dracut:
dracut: Switching root | dracut: Switching root
udev: starting version 147 | udev: starting version 147
kobject: 'cpu0' (ffff883f0076dc10):
kobject_uevent_env | kobject: 'cpu0'
(ffff883f7ec0c3d8): kobject_uevent_env
kobject: 'cpu1' (ffff883f0076d810):
kobject_uevent_env | kobject: 'cpu1'
(ffff883f7ec2c3d8): kobject_uevent_env
kobject: 'cpu2' (ffff883f0076d410):
kobject_uevent_env | kobject: 'cpu10'
(ffff883f7ed4c3d8): kobject_uevent_env
kobject: 'cpu3' (ffff883f0076d010):
kobject_uevent_env | kobject: 'cpu11'
(ffff883f7ed6c3d8): kobject_uevent_env
kobject: 'id' (ffff883f05716c10):
kobject_uevent_env | kobject: 'cpu12'
(ffff883f7ed8c3d8): kobject_uevent_env
kobject: 'fbcon' (ffff883f05779c10):
kobject_uevent_env | kobject: 'cpu13'
(ffff883f7f42c3d8): kobject_uevent_env
...... | ...... (total 72 cpus)
I looked at the path to send event at bootup, it's almost same, the
dmesg confirmed this.
uek2
topology_init->arch_register_cpu->register_cpu->sysdev_register->kobject_uevent(&dev->kobj,
KOBJ_ADD);
uek3
topology_init->arch_register_cpu->register_cpu->device_register->kobject_uevent(&dev->kobj,
KOBJ_ADD);
But I don't find who send event again after udev start with different
cpu count.
thanks
zduan
next prev parent reply other threads:[~2015-11-09 9:09 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-06 5:24 Question with maxcpus= parameter Zhenzhong Duan
2015-11-06 6:57 ` Raj, Ashok
2015-11-06 6:20 ` Zhenzhong Duan
[not found] ` <20151106161459.GB4538@char.us.oracle.com>
2015-11-09 5:47 ` Zhenzhong Duan
2015-11-09 6:12 ` Yinghai Lu
2015-11-09 9:09 ` Zhenzhong Duan [this message]
2015-11-09 17:04 ` Yinghai Lu
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=564062CE.90106@oracle.com \
--to=zhenzhong.duan@oracle.com \
--cc=ashok.raj@intel.com \
--cc=joe.jin@oracle.com \
--cc=konrad.wilk@oracle.com \
--cc=linux-kernel@vger.kernel.org \
--cc=rusty@rustcorp.com.au \
--cc=yinghai@kernel.org \
/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.