RE: Question about ia64 linux

From: Luck, Tony <tony.luck_at_intel.com>
Date: 2004-03-22 17:13:23
>Is it possible to modify a running code (in a module or kernel)
>in ia64 linux? (It is not a good practise to do it.
>But, I need to check  this out as it was done in ia32.....)

Yes it can be done.  Whether it is good practice is in the
eye of the beholder ... and depends a lot on what you are
actually doing.  If you have some 1950's code that reads
auccessive elements from an array my modifying the code that
loads the address ... then it's time to rewrite :-)  If you
have some on-the-fly code generation (e.g. a Just-in-time
compilation system) ... then that's a lot more palatable.

>Probably, it is possible. I just wanted to see whether
>there are any issues one should be aware of other than
>serialization/flushing. There are couple of pages of
>documentation regarding self-modifying code in one of
>the ia64 software developers manual. I am curious
>whether there are any other notes/writeups or sample
>code where similar kind of things are done in ia64
>linux.  I really appreciate if some one can direct me
>to such doc or code (if they exist) which can give
>some more ia64  specific information.

The software developers manual covers everything that
you need to know.  There are some code examples in the
Linux kernel code (where we modify a load instruction
to grab the physical address of an object, rather than
the virtual address ... used because the address won't
be known for sure until run-time).  These aren't very dynamic
though ... the instructions are patched during kernel
initialization, and never touched again. Look at
ia64_patch_vtop() in arch/kernel/ia64/patch.c

-Tony
-
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Received on Mon Mar 22 01:14:41 2004

This archive was generated by hypermail 2.1.8 : 2005-08-02 09:20:24 EST