lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Fri, 09 Apr 2010 17:58:05 -0400
From:	Masami Hiramatsu <mhiramat@...hat.com>
To:	Jason Baron <jbaron@...hat.com>
CC:	linux-kernel@...r.kernel.org, mingo@...e.hu,
	mathieu.desnoyers@...ymtl.ca, hpa@...or.com, tglx@...utronix.de,
	rostedt@...dmis.org, andi@...stfloor.org, roland@...hat.com,
	rth@...hat.com, fweisbec@...il.com, avi@...hat.com
Subject: Re: [PATCH 0/9] jump label v6

Jason Baron wrote:
> On Fri, Apr 09, 2010 at 04:36:24PM -0400, Masami Hiramatsu wrote:
>> Hi Jason,
>>
>> Jason Baron wrote:
>>> Hi,
>>>
>>> Refresh of jump labeling patches aginst -tip tree. For bacground see: 
>>> http://marc.info/?l=linux-kernel&m=125858436505941&w=2
>>>
>>> I believe I've addressed all the reviews from v5.
>>>
>>> Changes in v6:
>>>
>>> * I've moved Steve Rostedt's 'ftrace_dyn_arch_init()' to alternative.c to
>>> put it into a common area for used by both ftrace and jump labels. By
>>> default we put a 'jmp 5' in the nop slot. Then, when we detect the best
>>> runtime no-op we patch over the 'jmp 5' with the appropriate nop.
>>>
>>> * build time sort of the jump label table. The jump label table is more
>>> optimally accessed if the entries are continguous. Sorting the table
>>> accomplishes this. Do the sort at build-time. Adds a '-j' option to 
>>> 'modpost' which replaces the vmlinux, with a sorted jump label section vmlinux.
>>> I've tested this on x86 with relocatable and it works fine there as well. Note
>>> that I have not sorted the jump label table in modules. This is b/c the jump
>>> label names can be exported by the core kernel, and thus I don't have them
>>> available at buildtime. This could be solved by either finding the correct
>>> ones in the vmlinux, or by embedding the name of the jump label in the module
>>> tables (and not just a pointer), but the module tables tend to be smaller, and
>>> thus there is less value to this kind of change anyway. The kernel continues to
>>> do the sort, just in case, but at least for the vmlinux, this is just a
>>> verfication b/c the jump label table has already been sorted.
>>>
>>> * added jump_label_text_reserved(), so that other routines that want to patch
>>> the code, can first verify that they are not stomping on jump label addresses.
>>
>> Good!:-)
>> So now, it might be a good time to integrate those text_reserved() functions.
>>
>> BTW, how many jumps would you expect modifying at once?
>> Since the text_poke_smp() uses stop_machine() for each modifying text,
>> I found that it can cause a delay issue if it is called so many times...
>> (e.g. a systemtap testcase sets ~5000 probes at once)
>>
>> Thank you,
>>
> 
> I'm counting 934 jump label locations in the vmlinux, i have compiled,
> 675 of them being 'kmalloc'. Batch mode for text_poke_smp()?

Yeah:) I'm now trying to make it with updating kprobes.

Thank you,

-- 
Masami Hiramatsu
e-mail: mhiramat@...hat.com
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ