From: Peter Hurley <peter@hurleysoftware.com>
To: Dave Hansen <dave@linux.vnet.ibm.com>
Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org,
Gleb Natapov <gleb@redhat.com>, "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: Sun, 24 Feb 2013 16:28:58 -0500 [thread overview]
Message-ID: <1361741338.21499.38.camel@thor.lan> (raw)
In-Reply-To: <20130122212428.8DF70119@kernel.stglabs.ibm.com>
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);
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
--
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>
WARNING: multiple messages have this Message-ID (diff)
From: Peter Hurley <peter@hurleysoftware.com>
To: Dave Hansen <dave@linux.vnet.ibm.com>
Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org,
Gleb Natapov <gleb@redhat.com>, "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: Sun, 24 Feb 2013 16:28:58 -0500 [thread overview]
Message-ID: <1361741338.21499.38.camel@thor.lan> (raw)
In-Reply-To: <20130122212428.8DF70119@kernel.stglabs.ibm.com>
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);
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
next prev parent reply other threads:[~2013-02-24 21:29 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 [this message]
2013-02-24 21:28 ` Peter Hurley
2013-02-25 8:30 ` Gleb Natapov
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=1361741338.21499.38.camel@thor.lan \
--to=peter@hurleysoftware.com \
--cc=dave@linux.vnet.ibm.com \
--cc=gleb@redhat.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mtosatti@redhat.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.