Re: [[email protected]: Re: [PATCH] kprobes for s390 architecture]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




Heiko Carstens <[email protected]> wrote on 06/23/2006 08:03:44 AM:

> This won't solve anything. What Martin probably meant is something like a
poor
> man's stop_machine_run() implemented by using smp_call_function(). This
way
> you synchronize all cpus and when all cpus are in a known state, you
change
> the instruction in question and make sure that serialization happens
before
> cpus leave the handler again... Except for the cpu that called
> smp_call_function() you get the serialization for free, since the last
> instruction of the handler is always an lpsw/lpswe instruction.
>
> Otherwise there is still the possibility that a different cpu is fetching
the
> instruction concurrently while you change it. This doesn't sound very
good,
> especially if you take this paragraph of the Principles of Operation into
> account (p.5-89 of SA22-7832-04):
>
> "It is possible, if another CPU or a channel program concurrently
modifies
> the instruction, for one CPU to recognize the changes to some but not all
bit
> positions of an instruction."

(link to doc for anyone following along at home:
 http://publibz.boulder.ibm.com/epubs/pdf/a2278324.pdf)

On the same page it says "All copies of a prefetched instruction are
discarded
when: * A serializing function is performed" Would something like this in a
smp_call_function do it? :

bcr 15,0

if (*p->addr != breakpoint_instruction)
      *p->addr = breakpoint_instruction;


Alternatively, if we did a compare and swap on that location (serializing
instruction) would that be acceptable?

Thanks
Michael

=========================================
If at first you don't succeed, call in an air strike.

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

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux