Обсуждение: Self-modifying code

Поиск
Список
Период
Сортировка

Self-modifying code

От
Alvaro Herrera
Дата:
I just read an article on LWN.net about the usage of self-modifying code
for selecting the optimum code for a given operation at run time.  This
is probably not a highly portable technique, but Linux has definitions
for i386 and the amd64 archs, so that would cover the most common
scenarios.

This could be useful to provide different TAS implementations depending
on the actual system the code is running on.

The article is here:
http://lwn.net/SubscriberLink/164121/d88fddbb5606a938/


The i386 code is here:
http://lxr.linux.no/source/include/asm-i386/system.h#L288

-- 
Alvaro Herrera                                http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.


Re: Self-modifying code

От
Tom Lane
Дата:
Alvaro Herrera <alvherre@commandprompt.com> writes:
> I just read an article on LWN.net about the usage of self-modifying code
> for selecting the optimum code for a given operation at run time.

That went out with hula hoops, I think.  For sure the security
implications of making your code segment writable mean that the bar for
"is it worth it" is a WHOLE lot higher than "it might possibly make TAS
a bit faster".
        regards, tom lane


Re: Self-modifying code

От
Alvaro Herrera
Дата:
Tom Lane wrote:
> Alvaro Herrera <alvherre@commandprompt.com> writes:
> > I just read an article on LWN.net about the usage of self-modifying code
> > for selecting the optimum code for a given operation at run time.
> 
> That went out with hula hoops, I think.  For sure the security
> implications of making your code segment writable mean that the bar for
> "is it worth it" is a WHOLE lot higher than "it might possibly make TAS
> a bit faster".

Actually I was thinking in the issue with defining different sets of TAS
for SMP versus non-SMP.  There was discussion that suggested handing off
two set of binaries, one for each configuration.  So it's not just "it
might possibly" but rather a possible answer to that problem, which was
not mentioned as minor and for which a solution was not found AFAIR.

However it's not something that I'll personally code, so I'll let
somebody else argue about it if they really care about the issue.  I
just felt the need to mention it.

-- 
Alvaro Herrera                                http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support