All of lore.kernel.org
 help / color / mirror / Atom feed
* [patch] x86/oprofile: fix wrapping bug in op_x86_get_ctrl()
@ 2012-10-10  7:18 Dan Carpenter
  2012-10-15 14:39 ` Robert Richter
  0 siblings, 1 reply; 9+ messages in thread
From: Dan Carpenter @ 2012-10-10  7:18 UTC (permalink / raw)
  To: kernel-janitors

The "event" variable is a u16 so the shift will always wrap to zero
making the line a no-op.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
---
This was introduced in 2009 in 3370d35856 "x86/oprofile: replace macros
to calculate control register".  I am doing static analysis and I'm not
very familiar with this code.  Please review my changes carefully.

diff --git a/arch/x86/oprofile/nmi_int.c b/arch/x86/oprofile/nmi_int.c
index 26b8a85..48768df 100644
--- a/arch/x86/oprofile/nmi_int.c
+++ b/arch/x86/oprofile/nmi_int.c
@@ -55,7 +55,7 @@ u64 op_x86_get_ctrl(struct op_x86_model_spec const *model,
 	val |= counter_config->extra;
 	event &= model->event_mask ? model->event_mask : 0xFF;
 	val |= event & 0xFF;
-	val |= (event & 0x0F00) << 24;
+	val |= (u64)(event & 0x0F00) << 24;
 
 	return val;
 }

^ permalink raw reply related	[flat|nested] 9+ messages in thread
* [PATCH] oprofile: Add Support for Intel CPU Family 6 / Model 29
@ 2010-09-21  7:26 Jiri Olsa
  2010-09-21 10:33 ` Robert Richter
  0 siblings, 1 reply; 9+ messages in thread
From: Jiri Olsa @ 2010-09-21  7:26 UTC (permalink / raw)
  To: robert.richter; +Cc: linux-kernel, oprofile-list, tdm.rhbz, Jiri Olsa

This patch adds CPU type detection for dunnington processor (Family 6 / Model 29)
to be identified as core 2 family cpu type (wikipedia source).

I tested oprofile on Intel(R) Xeon(R) CPU E7440 reporting itself as model 29,
and it runs without an issue.

wbr,
jirka


Signed-off-by: Jiri Olsa <jolsa@redhat.com>
---
 arch/x86/oprofile/nmi_int.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/arch/x86/oprofile/nmi_int.c b/arch/x86/oprofile/nmi_int.c
index 009b819..f1575c9 100644
--- a/arch/x86/oprofile/nmi_int.c
+++ b/arch/x86/oprofile/nmi_int.c
@@ -674,6 +674,7 @@ static int __init ppro_init(char **cpu_type)
 	case 0x0f:
 	case 0x16:
 	case 0x17:
+	case 0x1d:
 		*cpu_type = "i386/core_2";
 		break;
 	case 0x1a:
-- 
1.7.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread
* [GIT PULL] oprofile fixes
@ 2010-09-01  8:46 Robert Richter
  2010-09-01  9:41 ` Ingo Molnar
  0 siblings, 1 reply; 9+ messages in thread
From: Robert Richter @ 2010-09-01  8:46 UTC (permalink / raw)
  To: Ingo Molnar; +Cc: LKML, oprofile-list

Ingo,

please pull oprofile fixes from:

 git://git.kernel.org/pub/scm/linux/kernel/git/rric/oprofile.git urgent

Thanks,

-Robert

The following changes since commit da5cabf80e2433131bf0ed8993abc0f7ea618c73:

  Linux 2.6.36-rc1 (2010-08-15 17:41:37 -0700)

are available in the git repository at:
  git://git.kernel.org/pub/scm/linux/kernel/git/rric/oprofile.git urgent

Robert Richter (2):
      oprofile: fix crash when accessing freed task structs
      oprofile, x86: fix init_sysfs error handling

 arch/x86/oprofile/nmi_int.c    |   16 +++++++++++++---
 drivers/oprofile/buffer_sync.c |   27 ++++++++++++++-------------
 drivers/oprofile/cpu_buffer.c  |    2 --
 3 files changed, 27 insertions(+), 18 deletions(-)

-- 
Advanced Micro Devices, Inc.
Operating System Research Center

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



^ permalink raw reply	[flat|nested] 9+ messages in thread
* [git pull] OProfile fixes
@ 2008-11-08  7:57 Ingo Molnar
  0 siblings, 0 replies; 9+ messages in thread
From: Ingo Molnar @ 2008-11-08  7:57 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: linux-kernel, Andrew Morton, Robert Richter

Linus,

Please pull the latest oprofile-fixes-for-linus git tree from:

   git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip.git oprofile-fixes-for-linus

 Thanks,

	Ingo

------------------>
Andi Kleen (1):
      oprofile: Fix p6 counter overflow check

Carl Love (2):
      Cell OProfile: Incorrect local array size in activate spu profiling function
      Cell OProfile: Incorrect local array size in activate spu profiling function

Jesper Dangaard Brouer (1):
      Change UTF8 chars in Kconfig help text about Oprofile AMD barcelona

Nick Piggin (1):
      oprofile: fix memory ordering

Robert Richter (1):
      Revert "Cell OProfile: Incorrect local array size in activate spu profiling function"


 arch/Kconfig                      |    2 +-
 arch/x86/oprofile/op_model_ppro.c |    9 ++++-----
 drivers/oprofile/event_buffer.c   |    6 +++---
 3 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/arch/Kconfig b/arch/Kconfig
index e6ab550..8977d99 100644
--- a/arch/Kconfig
+++ b/arch/Kconfig
@@ -21,7 +21,7 @@ config OPROFILE_IBS
           Instruction-Based Sampling (IBS) is a new profiling
           technique that provides rich, precise program performance
           information. IBS is introduced by AMD Family10h processors
-          (AMD Opteron Quad-Core processor “Barcelona”) to overcome
+          (AMD Opteron Quad-Core processor "Barcelona") to overcome
           the limitations of conventional performance counter
           sampling.
 
diff --git a/arch/x86/oprofile/op_model_ppro.c b/arch/x86/oprofile/op_model_ppro.c
index 0620d6d..3f1b81a 100644
--- a/arch/x86/oprofile/op_model_ppro.c
+++ b/arch/x86/oprofile/op_model_ppro.c
@@ -27,8 +27,7 @@ static int num_counters = 2;
 static int counter_width = 32;
 
 #define CTR_IS_RESERVED(msrs, c) (msrs->counters[(c)].addr ? 1 : 0)
-#define CTR_READ(l, h, msrs, c) do {rdmsr(msrs->counters[(c)].addr, (l), (h)); } while (0)
-#define CTR_OVERFLOWED(n) (!((n) & (1U<<(counter_width-1))))
+#define CTR_OVERFLOWED(n) (!((n) & (1ULL<<(counter_width-1))))
 
 #define CTRL_IS_RESERVED(msrs, c) (msrs->controls[(c)].addr ? 1 : 0)
 #define CTRL_READ(l, h, msrs, c) do {rdmsr((msrs->controls[(c)].addr), (l), (h)); } while (0)
@@ -124,14 +123,14 @@ static void ppro_setup_ctrs(struct op_msrs const * const msrs)
 static int ppro_check_ctrs(struct pt_regs * const regs,
 			   struct op_msrs const * const msrs)
 {
-	unsigned int low, high;
+	u64 val;
 	int i;
 
 	for (i = 0 ; i < num_counters; ++i) {
 		if (!reset_value[i])
 			continue;
-		CTR_READ(low, high, msrs, i);
-		if (CTR_OVERFLOWED(low)) {
+		rdmsrl(msrs->counters[i].addr, val);
+		if (CTR_OVERFLOWED(val)) {
 			oprofile_add_sample(regs, i);
 			wrmsrl(msrs->counters[i].addr, -reset_value[i]);
 		}
diff --git a/drivers/oprofile/event_buffer.c b/drivers/oprofile/event_buffer.c
index d962ba0..191a320 100644
--- a/drivers/oprofile/event_buffer.c
+++ b/drivers/oprofile/event_buffer.c
@@ -105,7 +105,7 @@ static int event_buffer_open(struct inode *inode, struct file *file)
 	if (!capable(CAP_SYS_ADMIN))
 		return -EPERM;
 
-	if (test_and_set_bit(0, &buffer_opened))
+	if (test_and_set_bit_lock(0, &buffer_opened))
 		return -EBUSY;
 
 	/* Register as a user of dcookies
@@ -129,7 +129,7 @@ static int event_buffer_open(struct inode *inode, struct file *file)
 fail:
 	dcookie_unregister(file->private_data);
 out:
-	clear_bit(0, &buffer_opened);
+	__clear_bit_unlock(0, &buffer_opened);
 	return err;
 }
 
@@ -141,7 +141,7 @@ static int event_buffer_release(struct inode *inode, struct file *file)
 	dcookie_unregister(file->private_data);
 	buffer_pos = 0;
 	atomic_set(&buffer_ready, 0);
-	clear_bit(0, &buffer_opened);
+	__clear_bit_unlock(0, &buffer_opened);
 	return 0;
 }
 

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

end of thread, other threads:[~2012-10-21 16:13 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-10-10  7:18 [patch] x86/oprofile: fix wrapping bug in op_x86_get_ctrl() Dan Carpenter
2012-10-15 14:39 ` Robert Richter
2012-10-15 14:47   ` [GIT PULL] oprofile fixes Robert Richter
2012-10-21 16:12     ` Ingo Molnar
  -- strict thread matches above, loose matches on Subject: below --
2010-09-21  7:26 [PATCH] oprofile: Add Support for Intel CPU Family 6 / Model 29 Jiri Olsa
2010-09-21 10:33 ` Robert Richter
2010-09-27  7:39   ` [GIT PULL] oprofile fixes Robert Richter
2010-09-27  7:50     ` Ingo Molnar
2010-09-01  8:46 Robert Richter
2010-09-01  9:41 ` Ingo Molnar
2008-11-08  7:57 [git pull] OProfile fixes Ingo Molnar

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.