All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: [PATCH] s390: Add support for z13
       [not found]           ` <alpine.LRH.2.20.1610121546540.14258@Diego>
@ 2016-10-12 20:27             ` William Cohen
  2016-10-13 12:42               ` Michael Petlan
  2016-10-13 16:14               ` Andreas Arnez
  0 siblings, 2 replies; 6+ messages in thread
From: William Cohen @ 2016-10-12 20:27 UTC (permalink / raw)
  To: Michael Petlan, Andreas Arnez
  Cc: linux-perf-users, Andreas Krebbel, oprofile-list

On 10/12/2016 10:01 AM, Michael Petlan wrote:
> On Wed, 5 Oct 2016, Andreas Arnez wrote:
>> On Tue, Oct 04 2016, Michael Petlan wrote:
>>
>>> Hi Andreas,
>>>
>>> have you or anyone tested this patch and/or s390 oprofile support
>>> in general? I'd love to know more about the results or at least,
>>> if there any, what has been tested and what not + whether there
>>> are any known issues regarding to HW sampling on s390.
>>
>> IIRC, I just performed a quick smoke test before submitting this patch;
>> and oprofile didn't crash.  Other than that, I don't really know what
>> works and what doesn't.
>>

Hi Andreas and Andreas,

Is there support for IBM z13 perf counters in the upstream linux kernel?  I didn't see perf support for IBM z13 in the mainline kernel git repository.

There is a difference between the kernel and oprofile is the s390 identification.  The kernel is using hex numbers such as 0x2817 and 0x2818 for Z196 identification (http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/s390/kernel/perf_cpum_cf_events.c#n303), but oprofile is reading the numbers as decimal for idenfication (https://sourceforge.net/p/oprofile/oprofile/ci/master/tree/libop/op_cpu_type.c).  oprofile should also be using hex numbers like the kernel.

-Will
> 
> Could you please try it with setting /proc/sys/kernel/kptr_restrict to '0'
> and /proc/sys/kernel/perf_event_paranoid to '-1', being logged as root user?
> 
> `ophelp -r`
>   --> should detect the machine, print "IBM z13"
> 
> `ophelp -d`
>   --> should print default event "CPU_CYCLES"
> 
> `ocount ls`
>   --> should return some non-zero value for event CPU_CYCLES
> 
> `ocount -e INSTRUCTIONS ls`
>   --> should use INSTRUCTIONS and return a non-zero value too
> 
> Please try out also the --system-wide mode as root.
> 
> If the above commands work, at least the basic z13 support can be verified.
> 
>> Some people mentioned various issues with oprofile on s390, depending on
>> kernel version and environment.  Since I'm currently more focused on
>> other projects, I haven't investigated them.  Here are some
>> (unconfirmed) examples:
>>
>> * The --help/--usage options of operf and ocount behave strangely.
>>  E.g., they attempt perf_open and just emit a cryptic error message if
>>  that fails.  And upon success they still yield exit code 1.
> 
> Maybe if /proc/sys/kernel/perf_event_paranoid is '2' and the user is not
> root, this might happen.
> 
>>
>> * operf is showing a warning message:
>>
>>    Kernel profiling is not possible with current system config.
>>    Set /proc/sys/kernel/kptr_restrict to 0 to collect kernel samples.
>>
> Is kptr_restrict set to '0'?
> 
>> * Without the --system-wide option, operf generates all-zero statistics.
> 
> Does `ocount` do the same? If yes, the event counting probably does not
> work as expected.
> 
> 
> Thanks!
> Michael
> 
>>
>> -- 
>> Andreas
>>
>>


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot

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

* Re: [PATCH] s390: Add support for z13
  2016-10-12 20:27             ` [PATCH] s390: Add support for z13 William Cohen
@ 2016-10-13 12:42               ` Michael Petlan
  2016-10-13 14:15                 ` William Cohen
  2016-10-13 16:14               ` Andreas Arnez
  1 sibling, 1 reply; 6+ messages in thread
From: Michael Petlan @ 2016-10-13 12:42 UTC (permalink / raw)
  To: William Cohen
  Cc: Michael Petlan, Andreas Arnez, Andreas Krebbel, oprofile-list,
	linux-perf-users

On Wed, 12 Oct 2016, William Cohen wrote:
> On 10/12/2016 10:01 AM, Michael Petlan wrote:
>> On Wed, 5 Oct 2016, Andreas Arnez wrote:
>>>
>>> IIRC, I just performed a quick smoke test before submitting this patch;
>>> and oprofile didn't crash.  Other than that, I don't really know what
>>> works and what doesn't.
>>>
>
> Hi Andreas and Andreas,
>
> Is there support for IBM z13 perf counters in the upstream linux kernel?  I didn't see perf support for IBM z13 in the mainline kernel git repository.
>
> There is a difference between the kernel and oprofile is the s390 identification.  The kernel is using hex numbers such as 0x2817 and 0x2818 for Z196 identification (http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/s390/kernel/perf_cpum_cf_events.c#n303), but oprofile is reading the numbers as decimal for idenfication (https://sourceforge.net/p/oprofile/oprofile/ci/master/tree/libop/op_cpu_type.c).  oprofile should also be using hex numbers like the kernel.

I have looked at this and although it is not ideal, it works OK in OProfile,
since it reads the numbers from string, thus it works with decimals.

I have also checked that zEC12 detection works correctly with 1.1.

Michael

>
> -Will
>>

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

* Re: [PATCH] s390: Add support for z13
  2016-10-13 12:42               ` Michael Petlan
@ 2016-10-13 14:15                 ` William Cohen
  2016-10-14 18:32                   ` Andreas Arnez
  0 siblings, 1 reply; 6+ messages in thread
From: William Cohen @ 2016-10-13 14:15 UTC (permalink / raw)
  To: Michael Petlan
  Cc: linux-perf-users, Andreas Krebbel, oprofile-list, Andreas Arnez

[-- Attachment #1: Type: text/plain, Size: 1685 bytes --]

On 10/13/2016 08:42 AM, Michael Petlan wrote:
> On Wed, 12 Oct 2016, William Cohen wrote:
>> On 10/12/2016 10:01 AM, Michael Petlan wrote:
>>> On Wed, 5 Oct 2016, Andreas Arnez wrote:
>>>>
>>>> IIRC, I just performed a quick smoke test before submitting this patch;
>>>> and oprofile didn't crash.  Other than that, I don't really know what
>>>> works and what doesn't.
>>>>
>>
>> Hi Andreas and Andreas,
>>
>> Is there support for IBM z13 perf counters in the upstream linux kernel?  I didn't see perf support for IBM z13 in the mainline kernel git repository.
>>
>> There is a difference between the kernel and oprofile is the s390 identification.  The kernel is using hex numbers such as 0x2817 and 0x2818 for Z196 identification (http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/s390/kernel/perf_cpum_cf_events.c#n303), but oprofile is reading the numbers as decimal for idenfication (https://sourceforge.net/p/oprofile/oprofile/ci/master/tree/libop/op_cpu_type.c).  oprofile should also be using hex numbers like the kernel.
> 
> I have looked at this and although it is not ideal, it works OK in OProfile,
> since it reads the numbers from string, thus it works with decimals.
> 
> I have also checked that zEC12 detection works correctly with 1.1.
> 
> Michael

Yes, the s390 processor detection in oprofile is not ideal with the kernel outputting the id in hex and the oprofile reading it in as a decimal.  Good thing that none of the s390 id values have a-f in the digits.  Attached is a patch that reads in the values as hex to better line up with the kernel's handling of the s390 identification.  Could one of the IBM people try this patch?

-Will


[-- Attachment #2: oprofile-s390-hexid.patch --]
[-- Type: text/x-patch, Size: 688 bytes --]

diff --git a/libop/op_cpu_type.c b/libop/op_cpu_type.c
index e70e4f6..ea5ff76 100644
--- a/libop/op_cpu_type.c
+++ b/libop/op_cpu_type.c
@@ -668,20 +668,19 @@ static op_cpu _get_s390_cpu_type(void)
 		return CPU_NO_GOOD;
 
 	ptr += sizeof(prefix) - 1;
-	if (sscanf(ptr, "%u", &model) != 1)
-		return CPU_NO_GOOD;
+	model = strtol(ptr, NULL, 16);
 
 	switch (model) {
-	case 2097:
-	case 2098:
+	case 0x2097:
+	case 0x2098:
 		return CPU_S390_Z10;
-	case 2817:
-	case 2818:
+	case 0x2817:
+	case 0x2818:
 		return CPU_S390_Z196;
-	case 2827:
-	case 2828:
+	case 0x2827:
+	case 0x2828:
 		return CPU_S390_ZEC12;
-	case 2964:
+	case 0x2964:
 		return CPU_S390_Z13;
 	}
 	return CPU_NO_GOOD;

[-- Attachment #3: Type: text/plain, Size: 203 bytes --]

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot

[-- Attachment #4: Type: text/plain, Size: 170 bytes --]

_______________________________________________
oprofile-list mailing list
oprofile-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oprofile-list

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

* Re: [PATCH] s390: Add support for z13
  2016-10-12 20:27             ` [PATCH] s390: Add support for z13 William Cohen
  2016-10-13 12:42               ` Michael Petlan
@ 2016-10-13 16:14               ` Andreas Arnez
  2016-10-13 18:23                 ` William Cohen
  1 sibling, 1 reply; 6+ messages in thread
From: Andreas Arnez @ 2016-10-13 16:14 UTC (permalink / raw)
  To: William Cohen; +Cc: Andreas Krebbel, oprofile-list, linux-perf-users

On Wed, Oct 12 2016, William Cohen wrote:

> Is there support for IBM z13 perf counters in the upstream linux
> kernel?  I didn't see perf support for IBM z13 in the mainline kernel
> git repository.

To my understanding, there is currently no support for z13-specific
counters, but generic counters should still work.  This certainly limits
the number of available counters on z13 significantly.

--
Andreas


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot

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

* Re: [PATCH] s390: Add support for z13
  2016-10-13 16:14               ` Andreas Arnez
@ 2016-10-13 18:23                 ` William Cohen
  0 siblings, 0 replies; 6+ messages in thread
From: William Cohen @ 2016-10-13 18:23 UTC (permalink / raw)
  To: Andreas Arnez
  Cc: Michael Petlan, Andreas Krebbel, oprofile-list, linux-perf-users

On 10/13/2016 12:14 PM, Andreas Arnez wrote:
> On Wed, Oct 12 2016, William Cohen wrote:
> 
>> Is there support for IBM z13 perf counters in the upstream linux
>> kernel?  I didn't see perf support for IBM z13 in the mainline kernel
>> git repository.
> 
> To my understanding, there is currently no support for z13-specific
> counters, but generic counters should still work.  This certainly limits
> the number of available counters on z13 significantly.
> 
> --
> Andreas
> 

Hi Andreas,

In the past on x86_64 machine if the cpu wasn't identified the performance monitoring hardware would be not used at all. The upstream code arch/s390/kernel/perf_cpum_cf_events.c it doesn't identify the z13, but it does look like it falls back to cpumcf_pmu_event_attr array of events.  However, I don't have much experience running things on IBM series machine, so want to verify that things are working on it.

-Will

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

* Re: [PATCH] s390: Add support for z13
  2016-10-13 14:15                 ` William Cohen
@ 2016-10-14 18:32                   ` Andreas Arnez
  0 siblings, 0 replies; 6+ messages in thread
From: Andreas Arnez @ 2016-10-14 18:32 UTC (permalink / raw)
  To: William Cohen
  Cc: Michael Petlan, Andreas Krebbel, oprofile-list, linux-perf-users

On Thu, Oct 13 2016, William Cohen wrote:

> Yes, the s390 processor detection in oprofile is not ideal with the kernel
> outputting the id in hex and the oprofile reading it in as a decimal.
> Good thing that none of the s390 id values have a-f in the digits.
> Attached is a patch that reads in the values as hex to better line up with
> the kernel's handling of the s390 identification.  Could one of the IBM
> people try this patch?

Sure.  The patch looks good to me, and I've verified it on one of the
affected machines.

--
Andreas

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

end of thread, other threads:[~2016-10-14 18:32 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <m3mvnwu1cy.fsf@oc1027705133.ibm.com>
     [not found] ` <bb9acd86-0c7c-7291-00c1-1c6ad8576232@redhat.com>
     [not found]   ` <m360p8m87d.fsf@oc1027705133.ibm.com>
     [not found]     ` <d2177055-a1c3-7562-f555-bd239836af3e@redhat.com>
     [not found]       ` <alpine.LRH.2.20.1610042254100.6819@Diego>
     [not found]         ` <m3vax6lkon.fsf@oc1027705133.ibm.com>
     [not found]           ` <alpine.LRH.2.20.1610121546540.14258@Diego>
2016-10-12 20:27             ` [PATCH] s390: Add support for z13 William Cohen
2016-10-13 12:42               ` Michael Petlan
2016-10-13 14:15                 ` William Cohen
2016-10-14 18:32                   ` Andreas Arnez
2016-10-13 16:14               ` Andreas Arnez
2016-10-13 18:23                 ` William Cohen

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.