All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gleb Natapov <gleb@redhat.com>
To: Peter Hurley <peter@hurleysoftware.com>
Cc: Dave Hansen <dave@linux.vnet.ibm.com>,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	x86@kernel.org, Marcelo Tosatti <mtosatti@redhat.com>,
	Rik van Riel <riel@redhat.com>
Subject: Re: [PATCH 0/5] [v3] fix illegal use of __pa() in KVM code
Date: Mon, 25 Feb 2013 10:30:39 +0200	[thread overview]
Message-ID: <20130225083039.GB21422@redhat.com> (raw)
In-Reply-To: <1361741338.21499.38.camel@thor.lan>

On Sun, Feb 24, 2013 at 04:28:58PM -0500, Peter Hurley wrote:
> 
> On Tue, 2013-01-22 at 13:24 -0800, Dave Hansen wrote:
> > This series fixes a hard-to-debug early boot hang on 32-bit
> > NUMA systems.  It adds coverage to the debugging code,
> > adds some helpers, and eventually fixes the original bug I
> > was hitting.
> 
> Hi Dave,
> 
> Now that the alloc_remap() has been/is being removed, is most/all of
> this being reverted?
> 
> I ask because I was fixing a different bug in KVM's para-virt clock and
> saw part of this series (from [PATCH 5/5] fix kvm's use of __pa() on
> percpu areas):
> 
> diff -puN arch/x86/kernel/kvmclock.c~fix-kvm-__pa-use-on-percpu-areas arch/x86/kernel/kvmclock.c
> --- linux-2.6.git/arch/x86/kernel/kvmclock.c~fix-kvm-__pa-use-on-percpu-areas   2013-01-22 13:17:16.428317508 -0800
> +++ linux-2.6.git-dave/arch/x86/kernel/kvmclock.c       2013-01-22 13:17:16.432317541 -0800
> @@ -162,8 +162,8 @@ int kvm_register_clock(char *txt)
>         int low, high, ret;
>         struct pvclock_vcpu_time_info *src = &hv_clock[cpu].pvti;
>  
> -       low = (int)__pa(src) | 1;
> -       high = ((u64)__pa(src) >> 32);
> +       low = (int)slow_virt_to_phys(src) | 1;
> +       high = ((u64)slow_virt_to_phys(src) >> 32);
>         ret = native_write_msr_safe(msr_kvm_system_time, low, high);
>         printk(KERN_INFO "kvm-clock: cpu %d, msr %x:%x, %s\n",
>                cpu, high, low, txt);
> 
I think this hunk was converted by mistake since the code does not use
per cpu allocations, but since __pa() and slow_virt_to_phys() should
return the same thing here it does not matter much.

> which confused me because hv_clock is the __va of allocated physical
> memory, not a per-cpu variable.
> 
> 	mem = memblock_alloc(size, PAGE_SIZE);
> 	if (!mem)
> 		return;
> 	hv_clock = __va(mem);
> 
> So in short, my questions are:
> 1) is the slow_virt_to_phys() necessary anymore?
> 2) if yes, does it apply to the code above?
> 3) if yes, would you explain in more detail what the 32-bit NUMA mm is
> doing, esp. wrt. when __va(__pa) is not identical across all cpus?
> 
> Regards,
> Peter Hurley
> 

--
			Gleb.

WARNING: multiple messages have this Message-ID (diff)
From: Gleb Natapov <gleb@redhat.com>
To: Peter Hurley <peter@hurleysoftware.com>
Cc: Dave Hansen <dave@linux.vnet.ibm.com>,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	"H. Peter Anvin" <hpa@zytor.com>,
	x86@kernel.org, Marcelo Tosatti <mtosatti@redhat.com>,
	Rik van Riel <riel@redhat.com>
Subject: Re: [PATCH 0/5] [v3] fix illegal use of __pa() in KVM code
Date: Mon, 25 Feb 2013 10:30:39 +0200	[thread overview]
Message-ID: <20130225083039.GB21422@redhat.com> (raw)
In-Reply-To: <1361741338.21499.38.camel@thor.lan>

On Sun, Feb 24, 2013 at 04:28:58PM -0500, Peter Hurley wrote:
> 
> On Tue, 2013-01-22 at 13:24 -0800, Dave Hansen wrote:
> > This series fixes a hard-to-debug early boot hang on 32-bit
> > NUMA systems.  It adds coverage to the debugging code,
> > adds some helpers, and eventually fixes the original bug I
> > was hitting.
> 
> Hi Dave,
> 
> Now that the alloc_remap() has been/is being removed, is most/all of
> this being reverted?
> 
> I ask because I was fixing a different bug in KVM's para-virt clock and
> saw part of this series (from [PATCH 5/5] fix kvm's use of __pa() on
> percpu areas):
> 
> diff -puN arch/x86/kernel/kvmclock.c~fix-kvm-__pa-use-on-percpu-areas arch/x86/kernel/kvmclock.c
> --- linux-2.6.git/arch/x86/kernel/kvmclock.c~fix-kvm-__pa-use-on-percpu-areas   2013-01-22 13:17:16.428317508 -0800
> +++ linux-2.6.git-dave/arch/x86/kernel/kvmclock.c       2013-01-22 13:17:16.432317541 -0800
> @@ -162,8 +162,8 @@ int kvm_register_clock(char *txt)
>         int low, high, ret;
>         struct pvclock_vcpu_time_info *src = &hv_clock[cpu].pvti;
>  
> -       low = (int)__pa(src) | 1;
> -       high = ((u64)__pa(src) >> 32);
> +       low = (int)slow_virt_to_phys(src) | 1;
> +       high = ((u64)slow_virt_to_phys(src) >> 32);
>         ret = native_write_msr_safe(msr_kvm_system_time, low, high);
>         printk(KERN_INFO "kvm-clock: cpu %d, msr %x:%x, %s\n",
>                cpu, high, low, txt);
> 
I think this hunk was converted by mistake since the code does not use
per cpu allocations, but since __pa() and slow_virt_to_phys() should
return the same thing here it does not matter much.

> which confused me because hv_clock is the __va of allocated physical
> memory, not a per-cpu variable.
> 
> 	mem = memblock_alloc(size, PAGE_SIZE);
> 	if (!mem)
> 		return;
> 	hv_clock = __va(mem);
> 
> So in short, my questions are:
> 1) is the slow_virt_to_phys() necessary anymore?
> 2) if yes, does it apply to the code above?
> 3) if yes, would you explain in more detail what the 32-bit NUMA mm is
> doing, esp. wrt. when __va(__pa) is not identical across all cpus?
> 
> Regards,
> Peter Hurley
> 

--
			Gleb.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2013-02-25  8:30 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-01-22 21:24 [PATCH 0/5] [v3] fix illegal use of __pa() in KVM code Dave Hansen
2013-01-22 21:24 ` Dave Hansen
2013-01-22 21:24 ` [PATCH 1/5] make DEBUG_VIRTUAL work earlier in boot Dave Hansen
2013-01-22 21:24   ` Dave Hansen
2013-01-26  1:51   ` [tip:x86/mm] x86, mm: Make " tip-bot for Dave Hansen
2013-01-22 21:24 ` [PATCH 2/5] pagetable level size/shift/mask helpers Dave Hansen
2013-01-22 21:24   ` Dave Hansen
2013-01-26  1:52   ` [tip:x86/mm] x86, mm: Pagetable " tip-bot for Dave Hansen
2013-01-22 21:24 ` [PATCH 3/5] use new pagetable helpers in try_preserve_large_page() Dave Hansen
2013-01-22 21:24   ` Dave Hansen
2013-01-26  1:53   ` [tip:x86/mm] x86, mm: Use " tip-bot for Dave Hansen
2013-01-22 21:24 ` [PATCH 4/5] create slow_virt_to_phys() Dave Hansen
2013-01-22 21:24   ` Dave Hansen
2013-01-26  1:54   ` [tip:x86/mm] x86, mm: Create slow_virt_to_phys() tip-bot for Dave Hansen
2013-01-22 21:24 ` [PATCH 5/5] fix kvm's use of __pa() on percpu areas Dave Hansen
2013-01-22 21:24   ` Dave Hansen
2013-01-23  0:08   ` Marcelo Tosatti
2013-01-23  0:08     ` Marcelo Tosatti
2013-01-26  1:56   ` [tip:x86/mm] x86, kvm: Fix " tip-bot for Dave Hansen
2013-01-25 23:15 ` [PATCH 0/5] [v3] fix illegal use of __pa() in KVM code Dave Hansen
2013-01-25 23:15   ` Dave Hansen
2013-02-24 21:28 ` Peter Hurley
2013-02-24 21:28   ` Peter Hurley
2013-02-25  8:30   ` Gleb Natapov [this message]
2013-02-25  8:30     ` Gleb Natapov
2013-02-25 14:42   ` Dave Hansen
2013-02-25 14:42     ` Dave Hansen
2013-02-26 12:45     ` Peter Hurley
2013-02-26 12:45       ` Peter Hurley

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=20130225083039.GB21422@redhat.com \
    --to=gleb@redhat.com \
    --cc=dave@linux.vnet.ibm.com \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mtosatti@redhat.com \
    --cc=peter@hurleysoftware.com \
    --cc=riel@redhat.com \
    --cc=x86@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.