Messages in this thread | | | Date | Tue, 11 Nov 2008 01:29:28 +0100 | From | "stephane eranian" <> | Subject | Re: [patch 00/24] perfmon3: introduction |
| |
Stephen,
I have updated the linux-next tree to fix the issue brought up by Paul.
Please pull from linux-next tree.
Thanks.
On Mon, Nov 10, 2008 at 4:24 PM, stephane eranian <eranian@googlemail.com> wrote: > Paul, > > On Mon, Nov 10, 2008 at 3:41 AM, Paul Mackerras <paulus@samba.org> wrote: >> Stephane, >> >> I have just looked through this set of patches and it mostly looks >> fine to me. There is just one thing, and that is that the way you >> access bitmaps using cast_ulp() won't work on 32-bit big-endian >> machines such as 32-bit PowerPC. I suggest that instead of using >> cast_ulp(), you have a set of abstracted bit-vector operations that >> can be implemented by the arch code - and on x86/ia64, they would be >> implemented with cast_ulp() + test_bit/__set_bit/etc. as at present. >> > > Thanks for bringing this up. I think we had talked about this a while back. > > There is indeed a problem on big endian 32-bit machines The cast will > pick up the wrong half of the u64. I think the best solution to this problem > is as you suggested. Consequently, I have added a perfmon abstraction (bv) > with its set of arch callbacks. The API takes u64 *.On x86, IA-64, it simply > calls the bitmap_*() API. On PPC, it will have to adjust when compiling for > 32 bits. > > Here is the example of __set_bit() on x86: > > static inline void pfm_arch_bv_set_bit(int b, u64 *a) > { > __set_bit(b, (unsigned long *)a); > } > > > I will push this into my linux-next tree and ask Stephen to pull from it again. >
| |