All of lore.kernel.org
 help / color / mirror / Atom feed
From: Glauber de Oliveira Costa <gcosta@redhat.com>
To: linux-kernel@vger.kernel.org
Cc: ehabkost@redhat.com, ak@suse.de,
	virtualization@lists.linux-foundation.org, chrisw@sous-sol.org,
	tglx@linutronix.de, anthony@codemonkey.ws, hpa@zytor.com,
	akpm@linux-foundation.org,
	Glauber de Oliveira Costa <gcosta@redhat.com>,
	mingo@elte.hu
Subject: [PATCH 7/10] change rdpmc interface
Date: Tue,  4 Dec 2007 09:10:01 -0200	[thread overview]
Message-ID: <11967666393130-git-send-email-gcosta@redhat.com> (raw)
In-Reply-To: <11967666351395-git-send-email-gcosta@redhat.com>

the rdpmc instruction gets a counter argument in rcx. However,
the i386 version was ignoring it. To make both x86_64 and i386 versions
the same, as well as to comply with the instruction semantics, this
parameter is added in the i386 version

Signed-off-by: Glauber de Oliveira Costa <gcosta@redhat.com>
---
 include/asm-x86/msr.h      |    6 +++---
 include/asm-x86/paravirt.h |    2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/include/asm-x86/msr.h b/include/asm-x86/msr.h
index 0296358..ce2a257 100644
--- a/include/asm-x86/msr.h
+++ b/include/asm-x86/msr.h
@@ -90,10 +90,10 @@ static inline unsigned long long native_read_tsc(void)
 	return val;
 }
 
-static inline unsigned long long native_read_pmc(void)
+static inline unsigned long long native_read_pmc(int counter)
 {
 	unsigned long long val;
-	asm volatile("rdpmc" : "=A" (val));
+	asm volatile("rdpmc" : "=A" (val) : "c" (counter));
 	return val;
 }
 
@@ -150,7 +150,7 @@ static inline int wrmsr_safe(u32 __msr, u32 __low, u32 __high)
 
 #define rdpmc(counter,low,high)					\
 	do {							\
-		u64 _l = native_read_pmc();			\
+		u64 _l = native_read_pmc(counter);		\
 		(low)  = (u32)_l;				\
 		(high) = (u32)(_l >> 32);			\
 	} while(0)
diff --git a/include/asm-x86/paravirt.h b/include/asm-x86/paravirt.h
index f59d370..4a7be97 100644
--- a/include/asm-x86/paravirt.h
+++ b/include/asm-x86/paravirt.h
@@ -118,7 +118,7 @@ struct pv_cpu_ops {
 	int (*write_msr)(unsigned int msr, u64 val);
 
 	u64 (*read_tsc)(void);
-	u64 (*read_pmc)(void);
+	u64 (*read_pmc)(int counter);
 
 	/* These two are jmp to, not actually called. */
 	void (*irq_enable_sysexit)(void);
-- 
1.4.4.2

WARNING: multiple messages have this Message-ID (diff)
From: Glauber de Oliveira Costa <gcosta@redhat.com>
To: linux-kernel@vger.kernel.org
Cc: akpm@linux-foundation.org, glommer@gmail.com, tglx@linutronix.de,
	mingo@elte.hu, ehabkost@redhat.com, jeremy@goop.org,
	avi@qumranet.com, anthony@codemonkey.ws,
	virtualization@lists.linux-foundation.org, rusty@rustcorp.com.au,
	ak@suse.de, chrisw@sous-sol.org, rostedt@goodmis.org,
	hpa@zytor.com, Glauber de Oliveira Costa <gcosta@redhat.com>
Subject: [PATCH 7/10] change rdpmc interface
Date: Tue,  4 Dec 2007 09:10:01 -0200	[thread overview]
Message-ID: <11967666393130-git-send-email-gcosta@redhat.com> (raw)
In-Reply-To: <11967666351395-git-send-email-gcosta@redhat.com>

the rdpmc instruction gets a counter argument in rcx. However,
the i386 version was ignoring it. To make both x86_64 and i386 versions
the same, as well as to comply with the instruction semantics, this
parameter is added in the i386 version

Signed-off-by: Glauber de Oliveira Costa <gcosta@redhat.com>
---
 include/asm-x86/msr.h      |    6 +++---
 include/asm-x86/paravirt.h |    2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/include/asm-x86/msr.h b/include/asm-x86/msr.h
index 0296358..ce2a257 100644
--- a/include/asm-x86/msr.h
+++ b/include/asm-x86/msr.h
@@ -90,10 +90,10 @@ static inline unsigned long long native_read_tsc(void)
 	return val;
 }
 
-static inline unsigned long long native_read_pmc(void)
+static inline unsigned long long native_read_pmc(int counter)
 {
 	unsigned long long val;
-	asm volatile("rdpmc" : "=A" (val));
+	asm volatile("rdpmc" : "=A" (val) : "c" (counter));
 	return val;
 }
 
@@ -150,7 +150,7 @@ static inline int wrmsr_safe(u32 __msr, u32 __low, u32 __high)
 
 #define rdpmc(counter,low,high)					\
 	do {							\
-		u64 _l = native_read_pmc();			\
+		u64 _l = native_read_pmc(counter);		\
 		(low)  = (u32)_l;				\
 		(high) = (u32)(_l >> 32);			\
 	} while(0)
diff --git a/include/asm-x86/paravirt.h b/include/asm-x86/paravirt.h
index f59d370..4a7be97 100644
--- a/include/asm-x86/paravirt.h
+++ b/include/asm-x86/paravirt.h
@@ -118,7 +118,7 @@ struct pv_cpu_ops {
 	int (*write_msr)(unsigned int msr, u64 val);
 
 	u64 (*read_tsc)(void);
-	u64 (*read_pmc)(void);
+	u64 (*read_pmc)(int counter);
 
 	/* These two are jmp to, not actually called. */
 	void (*irq_enable_sysexit)(void);
-- 
1.4.4.2


  reply	other threads:[~2007-12-04 11:10 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-12-04 11:09 [PATCH 0/10] Integrate msr.h Glauber de Oliveira Costa
2007-12-04 11:09 ` [PATCH 1/10] Wipe out traditional opt from x86_64 Makefile Glauber de Oliveira Costa
2007-12-04 11:09   ` Glauber de Oliveira Costa
2007-12-04 11:09   ` [PATCH 2/10] unify msr smp funcs Glauber de Oliveira Costa
2007-12-04 11:09     ` [PATCH 3/10] allow sched clock to be overridden by paravirt Glauber de Oliveira Costa
2007-12-04 11:09       ` [PATCH 4/10] split get_cycles_sync Glauber de Oliveira Costa
2007-12-04 11:09         ` [PATCH 5/10] unify cpuid functions Glauber de Oliveira Costa
2007-12-04 11:09           ` Glauber de Oliveira Costa
2007-12-04 11:10           ` [PATCH 6/10] introduce native_read_tscp Glauber de Oliveira Costa
2007-12-04 11:10             ` Glauber de Oliveira Costa
2007-12-04 11:10             ` Glauber de Oliveira Costa [this message]
2007-12-04 11:10               ` [PATCH 7/10] change rdpmc interface Glauber de Oliveira Costa
2007-12-04 11:10               ` [PATCH 8/10] change write msr functions interface Glauber de Oliveira Costa
2007-12-04 11:10                 ` Glauber de Oliveira Costa
2007-12-04 11:10                 ` [PATCH 9/10] make fixups wordsize agnostic Glauber de Oliveira Costa
2007-12-04 11:10                   ` Glauber de Oliveira Costa
2007-12-04 11:10                   ` [PATCH 10/10] integrate i386 and x86_64 code in msr.h Glauber de Oliveira Costa
2007-12-04 11:10                     ` Glauber de Oliveira Costa
2007-12-04 11:09       ` [PATCH 4/10] split get_cycles_sync Glauber de Oliveira Costa
2007-12-04 13:56       ` [PATCH 3/10] allow sched clock to be overridden by paravirt Andi Kleen
2007-12-04 13:56       ` Andi Kleen
2007-12-04 11:09     ` Glauber de Oliveira Costa
2007-12-04 11:09   ` [PATCH 2/10] unify msr smp funcs Glauber de Oliveira Costa
2007-12-04 14:09 ` [PATCH 0/10] Integrate msr.h Ingo Molnar
2007-12-04 15:47   ` Glauber de Oliveira Costa
2007-12-04 15:47   ` Glauber de Oliveira Costa
2007-12-04 14:09 ` Ingo Molnar
  -- strict thread matches above, loose matches on Subject: below --
2007-12-04 16:03 [PATCH 0/10 - V2] msr.h integration - fixups Glauber de Oliveira Costa
2007-12-04 16:03 ` [PATCH 1/10] Wipe out traditional opt from x86_64 Makefile Glauber de Oliveira Costa
2007-12-04 16:03   ` [PATCH 2/10] unify msr smp funcs Glauber de Oliveira Costa
2007-12-04 16:03     ` [PATCH 3/10] allow sched clock to be overridden by paravirt Glauber de Oliveira Costa
2007-12-04 16:03       ` [PATCH 4/10] split get_cycles_sync Glauber de Oliveira Costa
2007-12-04 16:03         ` [PATCH 5/10] unify cpuid functions Glauber de Oliveira Costa
2007-12-04 16:03           ` [PATCH 6/10] introduce native_read_tscp Glauber de Oliveira Costa
2007-12-04 16:03             ` [PATCH 7/10] change rdpmc interface Glauber de Oliveira Costa
2007-12-04 16:03               ` Glauber de Oliveira Costa

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=11967666393130-git-send-email-gcosta@redhat.com \
    --to=gcosta@redhat.com \
    --cc=ak@suse.de \
    --cc=akpm@linux-foundation.org \
    --cc=anthony@codemonkey.ws \
    --cc=chrisw@sous-sol.org \
    --cc=ehabkost@redhat.com \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=tglx@linutronix.de \
    --cc=virtualization@lists.linux-foundation.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.