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:	Wed, 18 Jun 2008 22:51:02 +1000
From:	Nick Piggin <nickpiggin@...oo.com.au>
To:	Jiri Slaby <jirislaby@...il.com>
Cc:	Ingo Molnar <mingo@...hat.com>, tglx@...utronix.de, hpa@...or.com,
	linux-kernel@...r.kernel.org, linux-mm@...ck.org,
	Andi Kleen <andi@...stfloor.org>
Subject: Re: [PATCH 1/1] MM: virtual address debug

On Thursday 12 June 2008 21:56, Jiri Slaby wrote:
> Add some (configurable) expensive sanity checking to catch wrong address
> translations on x86.
>
> - create linux/mmdebug.h file to be able include this file in
>   asm headers to not get unsolvable loops in header files
> - __phys_addr on x86_32 became a function in ioremap.c since
>   PAGE_OFFSET, is_vmalloc_addr and VMALLOC_* non-constasts are undefined
>   if declared in page_32.h

Uh, I have to disagree with this. __phys_addr is used in some really
performance critical parts of the kernel, and the function calls are
free mindset is just wrong. Even for modern x86 CPUs, the function
call return might take 10 cycles or more when you include all costs.

And for something like this

#define __phys_addr(x)         ((x) - PAGE_OFFSET)

the code to call the function is probably bigger than inline generated
code anyway.
--
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