[lvm-devel] [PATCH 16/30] Fix void* pointer arithmetic

Zdenek Kabelac zkabelac at redhat.com
Mon Oct 25 11:33:20 UTC 2010


Dne 25.10.2010 13:23, Milan Broz napsal(a):
> On 10/25/2010 10:24 AM, Zdenek Kabelac wrote:
> 
>>  static void _touch_memory(void *mem, size_t size)
>>  {
>>  	size_t pagesize = lvm_getpagesize();
>> -	void *pos = mem;
>> -	void *end = mem + size - sizeof(long);
>> +	char *pos = mem;
>> +	char *end = pos + size - sizeof(long);
> 
> And what about trash this "touch memory" code completely?
> 
> The whole idea of touching memory before locking is IMHO obsolete.
> 
> Locking memory should do this implicitly - can we prove that this
> code has some effect on recent systems?
> 

Our memlock code should be physically allocating and paging all the memory to
the process space - so the only difference is IMHO at which point in time
memory failure happens - with memory touching - it might occur sooner in some
cases - but we lose some speed by trashing CPU cache and flagging memory pages.

Zdenek




More information about the lvm-devel mailing list