All of lore.kernel.org
 help / color / mirror / Atom feed
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


  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.