public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Rusty Russell <rusty@rustcorp.com.au>
To: Oleg Drokin <green@linuxhacker.ru>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	"David S. Miller" <davem@davemloft.net>,
	"\<linux-kernel\@vger.kernel.org\> Mailing List" 
	<linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 0/2] incorrect cpumask behavior with CPUMASK_OFFSTACK
Date: Mon, 02 Mar 2015 21:58:03 +1030	[thread overview]
Message-ID: <87wq2zk5a4.fsf@rustcorp.com.au> (raw)
In-Reply-To: <DDE943EC-3D5B-420D-A227-BF39C07963D8@linuxhacker.ru>

Oleg Drokin <green@linuxhacker.ru> writes:
>>> The second patch that I am not sure if we wnat, but it seems to be useful
>>> until struct cpumask is fully dynamic is to convert what looks like
>>> whole-set operations e.g. copies, namely:
>>> cpumask_setall, cpumask_clear, cpumask_copy to always operate on NR_CPUS
>>> bits to ensure there's no stale garbage left in the mask should the
>>> cpu count increases later.
>> You can't do this, because dynamically allocated cpumasks don't have
>> NR_CPUS bits.
>
> Well, right now they certainly have. As in, it's a static define and we allocate
> a bitmap to fit the (in my case) up to 8192 bits into such off-stack masks.

You're right, we should fix that properly.  Right now, cpumask_size() has:

	/* FIXME: Once all cpumask assignments are eliminated, this
	 * can be nr_cpumask_bits */
	return BITS_TO_LONGS(NR_CPUS) * sizeof(long);

>> Let's just kill all the cpus_ functions.  This wasn't done originally
>> because archs which didn't care about offline cpumasks didn't want the
>> churn.  In particular, they must not copy struct cpumask by assignment,
>> and fixing those is a fair bit of churn.
>
> Ah, copy masks by assignment, I see.
> Well, I guess we can eliminate the users outside of the affected arch trees
> (I assume in x86 there would be no objections?) and perhaps add a warning to
> checkpatch.pl?

OK... I have done a sweep.  It's not *that* bad with spatch.

I'm going to remove all the old functions.  Expect a series RSN.

Cheers,
Rusty.


      reply	other threads:[~2015-03-02 11:41 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-26  6:19 [PATCH 0/2] incorrect cpumask behavior with CPUMASK_OFFSTACK green
2015-02-26  6:19 ` [PATCH 1/2] cpumask: Properly calculate cpumask values green
2015-02-26  6:19 ` [PATCH 2/2] cpumask: make whole cpumask operations like copy to work with NR_CPUS bits green
2015-02-27 11:46 ` [PATCH 0/2] incorrect cpumask behavior with CPUMASK_OFFSTACK Rusty Russell
2015-02-27 17:51   ` Oleg Drokin
2015-03-02 11:28     ` Rusty Russell [this message]

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=87wq2zk5a4.fsf@rustcorp.com.au \
    --to=rusty@rustcorp.com.au \
    --cc=akpm@linux-foundation.org \
    --cc=davem@davemloft.net \
    --cc=green@linuxhacker.ru \
    --cc=linux-kernel@vger.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox