mmiotrace broken in linux-next (8-bit writes only)

From: Pekka Paalanen
Date: Mon Jun 30 2008 - 16:48:57 EST


On Mon, 30 Jun 2008 14:37:36 +0200
Ingo Molnar <mingo@xxxxxxx> wrote:

> it would also be nice if you could check whether ftrace as integrated
> into linux-next has a functional mmiotrace. (and work with me in -tip on
> fixing it if it doesnt)

I tested it and it is broken in two ways. First is the NULL pointer
dereference, for which I made a quick patch (in the end of this email)
and I don't know what is going on in there. The patch allows me to run
my simple test. However, the test shows, that all 8-bit MMIO writes are
recorded with datum 0x80, which is incorrect. I've no idea what could
have changed. All the 16 and 32-bit ops are ok, and so are 8-bit reads,
which means the writes really do happen with the correct data, but just
mmiotrace gets it wrong. Mmiotrace source files are unchanged.

Has there been changes in compiler flags or iowrite8() that would cause
different instructions to be used in implementing the MMIO write?
I'm completely baffled.

I guess I should try to bisect, but I don't know when I can do that.
I tested on Athlon64, 64-bit UP kernel.

Vegard, have you experienced any weird issues in instruction decoding?
But I guess sort of bug would not affect you, since kmemcheck is not
interested in the data.

- pq