This is the mail archive of the mailing list for the systemtap project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Linux Kernel Markers

Ah, good point. Though ... how much do we care what the speed of
insertion/removal actually is? If we can tolerate it being slow,
then just sync everyone up in an IPI to freeze them out whilst
doing the insert.

I guess using IPI occasionally would be acceptable. But I think using IPI for each probes will lots of overhead.

Depends how often you're inserting/removing probes, I guess. Aren't these being done manually, in which case it really can't be that many? Still doesn't fix the problem Matieu just pointed out though. Humpf.

How about we combine all three ideas together ...

1. Load modified copy of the function in question.
2. overwrite the first instruction of the routine with an int3 that
does what you say (atomically)
3. Then overwrite the second instruction with a jump that's faster
4. Now atomically overwrite the int3 with a nop, and let the jump
take over.

That's a good solution.

It's not exactly elegant or simple, but I guess it'd work if we have to go to that extent. Seems like a lot of complexity though, I'd rather get rid of the int3 trap if we can.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]