mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [GIT PULL] percpu changes for v3.14-rc1
@ 2014-01-21  9:48 Tejun Heo
  2014-01-22  1:51 ` Linus Torvalds
  0 siblings, 1 reply; 3+ messages in thread
From: Tejun Heo @ 2014-01-21  9:48 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: linux-kernel, Christoph Lameter

Hello, Linus.

Two trivial changes - addition of WARN_ONCE() in lib/percpu-refcount.c
and use of VMALLOC_TOTAL instead of END - START in percpu.c.

I messed up the for-3.14 branch (committed stuff to for-next) and had
to rebuild for-3.14 by cherry-picking; however, the result is the same
as published to the next tree through for-next.

The changes are available in the following git branch

  git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu.git 

for you to fetch changes up to 8a0921712ec6d00754b5d7afea78137772efee0a:

  percpu: use VMALLOC_TOTAL instead of VMALLOC_END - VMALLOC_START (2014-01-21 04:41:26 -0500)

Thanks.
----------------------------------------------------------------
Kent Overstreet (1):
      percpu-refcount: Add a WARN() for ref going negative

Laura Abbott (1):
      percpu: use VMALLOC_TOTAL instead of VMALLOC_END - VMALLOC_START

 lib/percpu-refcount.c | 3 +++
 mm/percpu.c           | 4 ++--
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/lib/percpu-refcount.c b/lib/percpu-refcount.c
index 1a53d49..963b703 100644
--- a/lib/percpu-refcount.c
+++ b/lib/percpu-refcount.c
@@ -120,6 +120,9 @@ static void percpu_ref_kill_rcu(struct rcu_head *rcu)
 
 	atomic_add((int) count - PCPU_COUNT_BIAS, &ref->count);
 
+	WARN_ONCE(atomic_read(&ref->count) <= 0, "percpu ref <= 0 (%i)",
+		  atomic_read(&ref->count));
+
 	/* @ref is viewed as dead on all CPUs, send out kill confirmation */
 	if (ref->confirm_kill)
 		ref->confirm_kill(ref);
diff --git a/mm/percpu.c b/mm/percpu.c
index 0d10def..afbf352 100644
--- a/mm/percpu.c
+++ b/mm/percpu.c
@@ -1686,10 +1686,10 @@ int __init pcpu_embed_first_chunk(size_t reserved_size, size_t dyn_size,
 	max_distance += ai->unit_size;
 
 	/* warn if maximum distance is further than 75% of vmalloc space */
-	if (max_distance > (VMALLOC_END - VMALLOC_START) * 3 / 4) {
+	if (max_distance > VMALLOC_TOTAL * 3 / 4) {
 		pr_warning("PERCPU: max_distance=0x%zx too large for vmalloc "
 			   "space 0x%lx\n", max_distance,
-			   (unsigned long)(VMALLOC_END - VMALLOC_START));
+			   VMALLOC_TOTAL);
 #ifdef CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK
 		/* and fail if we have fallback */
 		rc = -EINVAL;

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [GIT PULL] percpu changes for v3.14-rc1
  2014-01-21  9:48 [GIT PULL] percpu changes for v3.14-rc1 Tejun Heo
@ 2014-01-22  1:51 ` Linus Torvalds
  2014-01-22  2:37   ` Tejun Heo
  0 siblings, 1 reply; 3+ messages in thread
From: Linus Torvalds @ 2014-01-22  1:51 UTC (permalink / raw)
  To: Tejun Heo; +Cc: Linux Kernel Mailing List, Christoph Lameter

On Tue, Jan 21, 2014 at 1:48 AM, Tejun Heo <tj@kernel.org> wrote:
>
> I messed up the for-3.14 branch (committed stuff to for-next) and had
> to rebuild for-3.14 by cherry-picking; however, the result is the same
> as published to the next tree through for-next.
>
> The changes are available in the following git branch
>
>   git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu.git

You messed up the pull request too.. The branch name is missing from
that git line, even if you did mention it a few lines earlier...

              Linus

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [GIT PULL] percpu changes for v3.14-rc1
  2014-01-22  1:51 ` Linus Torvalds
@ 2014-01-22  2:37   ` Tejun Heo
  0 siblings, 0 replies; 3+ messages in thread
From: Tejun Heo @ 2014-01-22  2:37 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Linux Kernel Mailing List, Christoph Lameter

Hello, Linus.

On Tue, Jan 21, 2014 at 05:51:13PM -0800, Linus Torvalds wrote:
> On Tue, Jan 21, 2014 at 1:48 AM, Tejun Heo <tj@kernel.org> wrote:
> >
> > I messed up the for-3.14 branch (committed stuff to for-next) and had
> > to rebuild for-3.14 by cherry-picking; however, the result is the same
> > as published to the next tree through for-next.
> >
> > The changes are available in the following git branch
> >
> >   git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu.git
> 
> You messed up the pull request too.. The branch name is missing from
> that git line, even if you did mention it a few lines earlier...

Oops, sorry.  The branch is for-3.14.

I have no idea how that happened tho.  That even isn't a part that I
edit.  I did

  git request-pull master git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu.git for-3.14 > out

and then pulled in that file and added the description on top and diff
at the end.  I still have the "out" file created by the above command
and it also lacks the branch tag, so it definitely wasn't me somehow
deleting it while editing.  If I run the git-request-pull again, it
does have "for-3.14" there with everything else identical.  I wonder
whether git-request-pull somehow skips over branch tag when remote
for-3.14 doesn't match local one?

Ooh, right, that was it.  So, after running git-request-pull for the
first time, I rebuilt for-3.14, did git push -f and then ran
git-request-pull.  At that point, the new for-3.14 hasn't propagated
to git://git.kernel.org yet, so git-request-pull couldn't find the
head which matched the SHA1 and thus omitted printing the branch.  I
wonder whether this is a new behavior.  I saw the warning message
multiple times but ISTR the generated pull request having the branch
name specified on the command line regardless.  Maybe it should just
fail rather than generating pull request w/o branch tag?

Thanks.

-- 
tejun

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2014-01-22  2:37 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-01-21  9:48 [GIT PULL] percpu changes for v3.14-rc1 Tejun Heo
2014-01-22  1:51 ` Linus Torvalds
2014-01-22  2:37   ` Tejun Heo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®