Re: [PATCH v3 11/13] kmemleak: disable kasan instrumentation for kmemleak

2014-10-01 Thread Dmitry Vyukov
On Wed, Oct 1, 2014 at 6:11 PM, Andrey Ryabinin  wrote:
>>>
>>> We can disable kasan instrumentation of this file as well.
>>
>> Yes, but why? I don't think we need that.
>
> Just gut feeling. Such tools usually don't play well together. For
> example, due to asan quarantine lots of leaks will be missed (if we
> pretend that tools work together, end users will use them together and
> miss bugs). I won't be surprised if leak detector touches freed
> objects under some circumstances as well.
> We can do this if/when discover actual compatibility issues, of course.

 I think it's worth testing them together first.

>>>
>>> I did test them together. With this patch applied both tools works without 
>>> problems.
>>
>> What do you mean "works without problems"? Are you sure that kmemleak
>> still detects all leaks it is intended to detect?
>>
>
> Yes I'm sure about that. And how kasan could affect on kmemleak's capability 
> to detect leaks?


Ah, OK, we don't have quarantine.
The idea is that redzones and quarantine will contain parasitical
pointers (quarantine is exactly a linked list of freed objects).
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v3 11/13] kmemleak: disable kasan instrumentation for kmemleak

2014-10-01 Thread Andrey Ryabinin
On 10/01/2014 05:27 PM, Dmitry Vyukov wrote:
> On Wed, Oct 1, 2014 at 3:45 PM, Andrey Ryabinin  
> wrote:
>> On 10/01/2014 02:39 PM, Catalin Marinas wrote:
>>> On Mon, Sep 29, 2014 at 03:10:01PM +0100, Dmitry Vyukov wrote:
 On Fri, Sep 26, 2014 at 9:36 PM, Andrey Ryabinin  
 wrote:
> 2014-09-26 21:10 GMT+04:00 Dmitry Vyukov :
>> Looks good to me.
>>
>> We can disable kasan instrumentation of this file as well.
>
> Yes, but why? I don't think we need that.

 Just gut feeling. Such tools usually don't play well together. For
 example, due to asan quarantine lots of leaks will be missed (if we
 pretend that tools work together, end users will use them together and
 miss bugs). I won't be surprised if leak detector touches freed
 objects under some circumstances as well.
 We can do this if/when discover actual compatibility issues, of course.
>>>
>>> I think it's worth testing them together first.
>>>
>>
>> I did test them together. With this patch applied both tools works without 
>> problems.
> 
> What do you mean "works without problems"? Are you sure that kmemleak
> still detects all leaks it is intended to detect?
> 

Yes I'm sure about that. And how kasan could affect on kmemleak's capability to 
detect leaks?

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


Re: [PATCH v3 11/13] kmemleak: disable kasan instrumentation for kmemleak

2014-10-01 Thread Dmitry Vyukov
On Wed, Oct 1, 2014 at 3:45 PM, Andrey Ryabinin  wrote:
> On 10/01/2014 02:39 PM, Catalin Marinas wrote:
>> On Mon, Sep 29, 2014 at 03:10:01PM +0100, Dmitry Vyukov wrote:
>>> On Fri, Sep 26, 2014 at 9:36 PM, Andrey Ryabinin  
>>> wrote:
 2014-09-26 21:10 GMT+04:00 Dmitry Vyukov :
> Looks good to me.
>
> We can disable kasan instrumentation of this file as well.

 Yes, but why? I don't think we need that.
>>>
>>> Just gut feeling. Such tools usually don't play well together. For
>>> example, due to asan quarantine lots of leaks will be missed (if we
>>> pretend that tools work together, end users will use them together and
>>> miss bugs). I won't be surprised if leak detector touches freed
>>> objects under some circumstances as well.
>>> We can do this if/when discover actual compatibility issues, of course.
>>
>> I think it's worth testing them together first.
>>
>
> I did test them together. With this patch applied both tools works without 
> problems.

What do you mean "works without problems"? Are you sure that kmemleak
still detects all leaks it is intended to detect?
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v3 11/13] kmemleak: disable kasan instrumentation for kmemleak

2014-10-01 Thread Andrey Ryabinin
On 10/01/2014 02:39 PM, Catalin Marinas wrote:
> On Mon, Sep 29, 2014 at 03:10:01PM +0100, Dmitry Vyukov wrote:
>> On Fri, Sep 26, 2014 at 9:36 PM, Andrey Ryabinin  
>> wrote:
>>> 2014-09-26 21:10 GMT+04:00 Dmitry Vyukov :
 Looks good to me.

 We can disable kasan instrumentation of this file as well.
>>>
>>> Yes, but why? I don't think we need that.
>>
>> Just gut feeling. Such tools usually don't play well together. For
>> example, due to asan quarantine lots of leaks will be missed (if we
>> pretend that tools work together, end users will use them together and
>> miss bugs). I won't be surprised if leak detector touches freed
>> objects under some circumstances as well.
>> We can do this if/when discover actual compatibility issues, of course.
> 
> I think it's worth testing them together first.
> 

I did test them together. With this patch applied both tools works without 
problems.


> One issue, as mentioned in the patch log, is that the size information
> that kmemleak gets is the one from the kmem_cache object rather than the
> original allocation size, so this would be rounded up.
> 
> Kmemleak should not touch freed objects (if an object is freed during a
> scan, it is protected by some lock until the scan completes). There is a
> bug however which I haven't got to fixing it yet, if kmemleak fails for
> some reason (cannot allocate memory) and disables itself, it may access
> some freed object (though usually hard to trigger).
> 

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


Re: [PATCH v3 11/13] kmemleak: disable kasan instrumentation for kmemleak

2014-10-01 Thread Catalin Marinas
On Mon, Sep 29, 2014 at 03:10:01PM +0100, Dmitry Vyukov wrote:
> On Fri, Sep 26, 2014 at 9:36 PM, Andrey Ryabinin  
> wrote:
> > 2014-09-26 21:10 GMT+04:00 Dmitry Vyukov :
> >> Looks good to me.
> >>
> >> We can disable kasan instrumentation of this file as well.
> >
> > Yes, but why? I don't think we need that.
> 
> Just gut feeling. Such tools usually don't play well together. For
> example, due to asan quarantine lots of leaks will be missed (if we
> pretend that tools work together, end users will use them together and
> miss bugs). I won't be surprised if leak detector touches freed
> objects under some circumstances as well.
> We can do this if/when discover actual compatibility issues, of course.

I think it's worth testing them together first.

One issue, as mentioned in the patch log, is that the size information
that kmemleak gets is the one from the kmem_cache object rather than the
original allocation size, so this would be rounded up.

Kmemleak should not touch freed objects (if an object is freed during a
scan, it is protected by some lock until the scan completes). There is a
bug however which I haven't got to fixing it yet, if kmemleak fails for
some reason (cannot allocate memory) and disables itself, it may access
some freed object (though usually hard to trigger).

-- 
Catalin
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v3 11/13] kmemleak: disable kasan instrumentation for kmemleak

2014-10-01 Thread Catalin Marinas
On Mon, Sep 29, 2014 at 03:10:01PM +0100, Dmitry Vyukov wrote:
 On Fri, Sep 26, 2014 at 9:36 PM, Andrey Ryabinin ryabinin@gmail.com 
 wrote:
  2014-09-26 21:10 GMT+04:00 Dmitry Vyukov dvyu...@google.com:
  Looks good to me.
 
  We can disable kasan instrumentation of this file as well.
 
  Yes, but why? I don't think we need that.
 
 Just gut feeling. Such tools usually don't play well together. For
 example, due to asan quarantine lots of leaks will be missed (if we
 pretend that tools work together, end users will use them together and
 miss bugs). I won't be surprised if leak detector touches freed
 objects under some circumstances as well.
 We can do this if/when discover actual compatibility issues, of course.

I think it's worth testing them together first.

One issue, as mentioned in the patch log, is that the size information
that kmemleak gets is the one from the kmem_cache object rather than the
original allocation size, so this would be rounded up.

Kmemleak should not touch freed objects (if an object is freed during a
scan, it is protected by some lock until the scan completes). There is a
bug however which I haven't got to fixing it yet, if kmemleak fails for
some reason (cannot allocate memory) and disables itself, it may access
some freed object (though usually hard to trigger).

-- 
Catalin
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v3 11/13] kmemleak: disable kasan instrumentation for kmemleak

2014-10-01 Thread Andrey Ryabinin
On 10/01/2014 02:39 PM, Catalin Marinas wrote:
 On Mon, Sep 29, 2014 at 03:10:01PM +0100, Dmitry Vyukov wrote:
 On Fri, Sep 26, 2014 at 9:36 PM, Andrey Ryabinin ryabinin@gmail.com 
 wrote:
 2014-09-26 21:10 GMT+04:00 Dmitry Vyukov dvyu...@google.com:
 Looks good to me.

 We can disable kasan instrumentation of this file as well.

 Yes, but why? I don't think we need that.

 Just gut feeling. Such tools usually don't play well together. For
 example, due to asan quarantine lots of leaks will be missed (if we
 pretend that tools work together, end users will use them together and
 miss bugs). I won't be surprised if leak detector touches freed
 objects under some circumstances as well.
 We can do this if/when discover actual compatibility issues, of course.
 
 I think it's worth testing them together first.
 

I did test them together. With this patch applied both tools works without 
problems.


 One issue, as mentioned in the patch log, is that the size information
 that kmemleak gets is the one from the kmem_cache object rather than the
 original allocation size, so this would be rounded up.
 
 Kmemleak should not touch freed objects (if an object is freed during a
 scan, it is protected by some lock until the scan completes). There is a
 bug however which I haven't got to fixing it yet, if kmemleak fails for
 some reason (cannot allocate memory) and disables itself, it may access
 some freed object (though usually hard to trigger).
 

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v3 11/13] kmemleak: disable kasan instrumentation for kmemleak

2014-10-01 Thread Dmitry Vyukov
On Wed, Oct 1, 2014 at 3:45 PM, Andrey Ryabinin a.ryabi...@samsung.com wrote:
 On 10/01/2014 02:39 PM, Catalin Marinas wrote:
 On Mon, Sep 29, 2014 at 03:10:01PM +0100, Dmitry Vyukov wrote:
 On Fri, Sep 26, 2014 at 9:36 PM, Andrey Ryabinin ryabinin@gmail.com 
 wrote:
 2014-09-26 21:10 GMT+04:00 Dmitry Vyukov dvyu...@google.com:
 Looks good to me.

 We can disable kasan instrumentation of this file as well.

 Yes, but why? I don't think we need that.

 Just gut feeling. Such tools usually don't play well together. For
 example, due to asan quarantine lots of leaks will be missed (if we
 pretend that tools work together, end users will use them together and
 miss bugs). I won't be surprised if leak detector touches freed
 objects under some circumstances as well.
 We can do this if/when discover actual compatibility issues, of course.

 I think it's worth testing them together first.


 I did test them together. With this patch applied both tools works without 
 problems.

What do you mean works without problems? Are you sure that kmemleak
still detects all leaks it is intended to detect?
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v3 11/13] kmemleak: disable kasan instrumentation for kmemleak

2014-10-01 Thread Andrey Ryabinin
On 10/01/2014 05:27 PM, Dmitry Vyukov wrote:
 On Wed, Oct 1, 2014 at 3:45 PM, Andrey Ryabinin a.ryabi...@samsung.com 
 wrote:
 On 10/01/2014 02:39 PM, Catalin Marinas wrote:
 On Mon, Sep 29, 2014 at 03:10:01PM +0100, Dmitry Vyukov wrote:
 On Fri, Sep 26, 2014 at 9:36 PM, Andrey Ryabinin ryabinin@gmail.com 
 wrote:
 2014-09-26 21:10 GMT+04:00 Dmitry Vyukov dvyu...@google.com:
 Looks good to me.

 We can disable kasan instrumentation of this file as well.

 Yes, but why? I don't think we need that.

 Just gut feeling. Such tools usually don't play well together. For
 example, due to asan quarantine lots of leaks will be missed (if we
 pretend that tools work together, end users will use them together and
 miss bugs). I won't be surprised if leak detector touches freed
 objects under some circumstances as well.
 We can do this if/when discover actual compatibility issues, of course.

 I think it's worth testing them together first.


 I did test them together. With this patch applied both tools works without 
 problems.
 
 What do you mean works without problems? Are you sure that kmemleak
 still detects all leaks it is intended to detect?
 

Yes I'm sure about that. And how kasan could affect on kmemleak's capability to 
detect leaks?

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v3 11/13] kmemleak: disable kasan instrumentation for kmemleak

2014-10-01 Thread Dmitry Vyukov
On Wed, Oct 1, 2014 at 6:11 PM, Andrey Ryabinin a.ryabi...@samsung.com wrote:

 We can disable kasan instrumentation of this file as well.

 Yes, but why? I don't think we need that.

 Just gut feeling. Such tools usually don't play well together. For
 example, due to asan quarantine lots of leaks will be missed (if we
 pretend that tools work together, end users will use them together and
 miss bugs). I won't be surprised if leak detector touches freed
 objects under some circumstances as well.
 We can do this if/when discover actual compatibility issues, of course.

 I think it's worth testing them together first.


 I did test them together. With this patch applied both tools works without 
 problems.

 What do you mean works without problems? Are you sure that kmemleak
 still detects all leaks it is intended to detect?


 Yes I'm sure about that. And how kasan could affect on kmemleak's capability 
 to detect leaks?


Ah, OK, we don't have quarantine.
The idea is that redzones and quarantine will contain parasitical
pointers (quarantine is exactly a linked list of freed objects).
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v3 11/13] kmemleak: disable kasan instrumentation for kmemleak

2014-09-29 Thread Dmitry Vyukov
On Fri, Sep 26, 2014 at 9:36 PM, Andrey Ryabinin  wrote:
> 2014-09-26 21:10 GMT+04:00 Dmitry Vyukov :
>> Looks good to me.
>>
>> We can disable kasan instrumentation of this file as well.
>>
>
> Yes, but why? I don't think we need that.


Just gut feeling. Such tools usually don't play well together. For
example, due to asan quarantine lots of leaks will be missed (if we
pretend that tools work together, end users will use them together and
miss bugs). I won't be surprised if leak detector touches freed
objects under some circumstances as well.
We can do this if/when discover actual compatibility issues, of course.


>> On Wed, Sep 24, 2014 at 5:44 AM, Andrey Ryabinin  
>> wrote:
>>> kmalloc internally round up allocation size, and kmemleak
>>> uses rounded up size as object's size. This makes kasan
>>> to complain while kmemleak scans memory or calculates of object's
>>> checksum. The simplest solution here is to disable kasan.
>>>
>>> Signed-off-by: Andrey Ryabinin 
>>> ---
>>>  mm/kmemleak.c | 6 ++
>>>  1 file changed, 6 insertions(+)
>>>
>>> diff --git a/mm/kmemleak.c b/mm/kmemleak.c
>>> index 3cda50c..9bda1b3 100644
>>> --- a/mm/kmemleak.c
>>> +++ b/mm/kmemleak.c
>>> @@ -98,6 +98,7 @@
>>>  #include 
>>>  #include 
>>>
>>> +#include 
>>>  #include 
>>>  #include 
>>>  #include 
>>> @@ -1113,7 +1114,10 @@ static bool update_checksum(struct kmemleak_object 
>>> *object)
>>> if (!kmemcheck_is_obj_initialized(object->pointer, object->size))
>>> return false;
>>>
>>> +   kasan_disable_local();
>>> object->checksum = crc32(0, (void *)object->pointer, object->size);
>>> +   kasan_enable_local();
>>> +
>>> return object->checksum != old_csum;
>>>  }
>>>
>>> @@ -1164,7 +1168,9 @@ static void scan_block(void *_start, void *_end,
>>>   BYTES_PER_POINTER))
>>> continue;
>>>
>>> +   kasan_disable_local();
>>> pointer = *ptr;
>>> +   kasan_enable_local();
>>>
>>> object = find_and_get_object(pointer, 1);
>>> if (!object)
>>> --
>>> 2.1.1
>>>
>>
>
>
> --
> Best regards,
> Andrey Ryabinin
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v3 11/13] kmemleak: disable kasan instrumentation for kmemleak

2014-09-29 Thread Dmitry Vyukov
On Fri, Sep 26, 2014 at 9:36 PM, Andrey Ryabinin ryabinin@gmail.com wrote:
 2014-09-26 21:10 GMT+04:00 Dmitry Vyukov dvyu...@google.com:
 Looks good to me.

 We can disable kasan instrumentation of this file as well.


 Yes, but why? I don't think we need that.


Just gut feeling. Such tools usually don't play well together. For
example, due to asan quarantine lots of leaks will be missed (if we
pretend that tools work together, end users will use them together and
miss bugs). I won't be surprised if leak detector touches freed
objects under some circumstances as well.
We can do this if/when discover actual compatibility issues, of course.


 On Wed, Sep 24, 2014 at 5:44 AM, Andrey Ryabinin a.ryabi...@samsung.com 
 wrote:
 kmalloc internally round up allocation size, and kmemleak
 uses rounded up size as object's size. This makes kasan
 to complain while kmemleak scans memory or calculates of object's
 checksum. The simplest solution here is to disable kasan.

 Signed-off-by: Andrey Ryabinin a.ryabi...@samsung.com
 ---
  mm/kmemleak.c | 6 ++
  1 file changed, 6 insertions(+)

 diff --git a/mm/kmemleak.c b/mm/kmemleak.c
 index 3cda50c..9bda1b3 100644
 --- a/mm/kmemleak.c
 +++ b/mm/kmemleak.c
 @@ -98,6 +98,7 @@
  #include asm/processor.h
  #include linux/atomic.h

 +#include linux/kasan.h
  #include linux/kmemcheck.h
  #include linux/kmemleak.h
  #include linux/memory_hotplug.h
 @@ -1113,7 +1114,10 @@ static bool update_checksum(struct kmemleak_object 
 *object)
 if (!kmemcheck_is_obj_initialized(object-pointer, object-size))
 return false;

 +   kasan_disable_local();
 object-checksum = crc32(0, (void *)object-pointer, object-size);
 +   kasan_enable_local();
 +
 return object-checksum != old_csum;
  }

 @@ -1164,7 +1168,9 @@ static void scan_block(void *_start, void *_end,
   BYTES_PER_POINTER))
 continue;

 +   kasan_disable_local();
 pointer = *ptr;
 +   kasan_enable_local();

 object = find_and_get_object(pointer, 1);
 if (!object)
 --
 2.1.1




 --
 Best regards,
 Andrey Ryabinin
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v3 11/13] kmemleak: disable kasan instrumentation for kmemleak

2014-09-26 Thread Andrey Ryabinin
2014-09-26 21:10 GMT+04:00 Dmitry Vyukov :
> Looks good to me.
>
> We can disable kasan instrumentation of this file as well.
>

Yes, but why? I don't think we need that.

> On Wed, Sep 24, 2014 at 5:44 AM, Andrey Ryabinin  
> wrote:
>> kmalloc internally round up allocation size, and kmemleak
>> uses rounded up size as object's size. This makes kasan
>> to complain while kmemleak scans memory or calculates of object's
>> checksum. The simplest solution here is to disable kasan.
>>
>> Signed-off-by: Andrey Ryabinin 
>> ---
>>  mm/kmemleak.c | 6 ++
>>  1 file changed, 6 insertions(+)
>>
>> diff --git a/mm/kmemleak.c b/mm/kmemleak.c
>> index 3cda50c..9bda1b3 100644
>> --- a/mm/kmemleak.c
>> +++ b/mm/kmemleak.c
>> @@ -98,6 +98,7 @@
>>  #include 
>>  #include 
>>
>> +#include 
>>  #include 
>>  #include 
>>  #include 
>> @@ -1113,7 +1114,10 @@ static bool update_checksum(struct kmemleak_object 
>> *object)
>> if (!kmemcheck_is_obj_initialized(object->pointer, object->size))
>> return false;
>>
>> +   kasan_disable_local();
>> object->checksum = crc32(0, (void *)object->pointer, object->size);
>> +   kasan_enable_local();
>> +
>> return object->checksum != old_csum;
>>  }
>>
>> @@ -1164,7 +1168,9 @@ static void scan_block(void *_start, void *_end,
>>   BYTES_PER_POINTER))
>> continue;
>>
>> +   kasan_disable_local();
>> pointer = *ptr;
>> +   kasan_enable_local();
>>
>> object = find_and_get_object(pointer, 1);
>> if (!object)
>> --
>> 2.1.1
>>
>


-- 
Best regards,
Andrey Ryabinin
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v3 11/13] kmemleak: disable kasan instrumentation for kmemleak

2014-09-26 Thread Dmitry Vyukov
Looks good to me.

We can disable kasan instrumentation of this file as well.

On Wed, Sep 24, 2014 at 5:44 AM, Andrey Ryabinin  wrote:
> kmalloc internally round up allocation size, and kmemleak
> uses rounded up size as object's size. This makes kasan
> to complain while kmemleak scans memory or calculates of object's
> checksum. The simplest solution here is to disable kasan.
>
> Signed-off-by: Andrey Ryabinin 
> ---
>  mm/kmemleak.c | 6 ++
>  1 file changed, 6 insertions(+)
>
> diff --git a/mm/kmemleak.c b/mm/kmemleak.c
> index 3cda50c..9bda1b3 100644
> --- a/mm/kmemleak.c
> +++ b/mm/kmemleak.c
> @@ -98,6 +98,7 @@
>  #include 
>  #include 
>
> +#include 
>  #include 
>  #include 
>  #include 
> @@ -1113,7 +1114,10 @@ static bool update_checksum(struct kmemleak_object 
> *object)
> if (!kmemcheck_is_obj_initialized(object->pointer, object->size))
> return false;
>
> +   kasan_disable_local();
> object->checksum = crc32(0, (void *)object->pointer, object->size);
> +   kasan_enable_local();
> +
> return object->checksum != old_csum;
>  }
>
> @@ -1164,7 +1168,9 @@ static void scan_block(void *_start, void *_end,
>   BYTES_PER_POINTER))
> continue;
>
> +   kasan_disable_local();
> pointer = *ptr;
> +   kasan_enable_local();
>
> object = find_and_get_object(pointer, 1);
> if (!object)
> --
> 2.1.1
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v3 11/13] kmemleak: disable kasan instrumentation for kmemleak

2014-09-26 Thread Dmitry Vyukov
Looks good to me.

We can disable kasan instrumentation of this file as well.

On Wed, Sep 24, 2014 at 5:44 AM, Andrey Ryabinin a.ryabi...@samsung.com wrote:
 kmalloc internally round up allocation size, and kmemleak
 uses rounded up size as object's size. This makes kasan
 to complain while kmemleak scans memory or calculates of object's
 checksum. The simplest solution here is to disable kasan.

 Signed-off-by: Andrey Ryabinin a.ryabi...@samsung.com
 ---
  mm/kmemleak.c | 6 ++
  1 file changed, 6 insertions(+)

 diff --git a/mm/kmemleak.c b/mm/kmemleak.c
 index 3cda50c..9bda1b3 100644
 --- a/mm/kmemleak.c
 +++ b/mm/kmemleak.c
 @@ -98,6 +98,7 @@
  #include asm/processor.h
  #include linux/atomic.h

 +#include linux/kasan.h
  #include linux/kmemcheck.h
  #include linux/kmemleak.h
  #include linux/memory_hotplug.h
 @@ -1113,7 +1114,10 @@ static bool update_checksum(struct kmemleak_object 
 *object)
 if (!kmemcheck_is_obj_initialized(object-pointer, object-size))
 return false;

 +   kasan_disable_local();
 object-checksum = crc32(0, (void *)object-pointer, object-size);
 +   kasan_enable_local();
 +
 return object-checksum != old_csum;
  }

 @@ -1164,7 +1168,9 @@ static void scan_block(void *_start, void *_end,
   BYTES_PER_POINTER))
 continue;

 +   kasan_disable_local();
 pointer = *ptr;
 +   kasan_enable_local();

 object = find_and_get_object(pointer, 1);
 if (!object)
 --
 2.1.1

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v3 11/13] kmemleak: disable kasan instrumentation for kmemleak

2014-09-26 Thread Andrey Ryabinin
2014-09-26 21:10 GMT+04:00 Dmitry Vyukov dvyu...@google.com:
 Looks good to me.

 We can disable kasan instrumentation of this file as well.


Yes, but why? I don't think we need that.

 On Wed, Sep 24, 2014 at 5:44 AM, Andrey Ryabinin a.ryabi...@samsung.com 
 wrote:
 kmalloc internally round up allocation size, and kmemleak
 uses rounded up size as object's size. This makes kasan
 to complain while kmemleak scans memory or calculates of object's
 checksum. The simplest solution here is to disable kasan.

 Signed-off-by: Andrey Ryabinin a.ryabi...@samsung.com
 ---
  mm/kmemleak.c | 6 ++
  1 file changed, 6 insertions(+)

 diff --git a/mm/kmemleak.c b/mm/kmemleak.c
 index 3cda50c..9bda1b3 100644
 --- a/mm/kmemleak.c
 +++ b/mm/kmemleak.c
 @@ -98,6 +98,7 @@
  #include asm/processor.h
  #include linux/atomic.h

 +#include linux/kasan.h
  #include linux/kmemcheck.h
  #include linux/kmemleak.h
  #include linux/memory_hotplug.h
 @@ -1113,7 +1114,10 @@ static bool update_checksum(struct kmemleak_object 
 *object)
 if (!kmemcheck_is_obj_initialized(object-pointer, object-size))
 return false;

 +   kasan_disable_local();
 object-checksum = crc32(0, (void *)object-pointer, object-size);
 +   kasan_enable_local();
 +
 return object-checksum != old_csum;
  }

 @@ -1164,7 +1168,9 @@ static void scan_block(void *_start, void *_end,
   BYTES_PER_POINTER))
 continue;

 +   kasan_disable_local();
 pointer = *ptr;
 +   kasan_enable_local();

 object = find_and_get_object(pointer, 1);
 if (!object)
 --
 2.1.1




-- 
Best regards,
Andrey Ryabinin
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH v3 11/13] kmemleak: disable kasan instrumentation for kmemleak

2014-09-24 Thread Andrey Ryabinin
kmalloc internally round up allocation size, and kmemleak
uses rounded up size as object's size. This makes kasan
to complain while kmemleak scans memory or calculates of object's
checksum. The simplest solution here is to disable kasan.

Signed-off-by: Andrey Ryabinin 
---
 mm/kmemleak.c | 6 ++
 1 file changed, 6 insertions(+)

diff --git a/mm/kmemleak.c b/mm/kmemleak.c
index 3cda50c..9bda1b3 100644
--- a/mm/kmemleak.c
+++ b/mm/kmemleak.c
@@ -98,6 +98,7 @@
 #include 
 #include 
 
+#include 
 #include 
 #include 
 #include 
@@ -1113,7 +1114,10 @@ static bool update_checksum(struct kmemleak_object 
*object)
if (!kmemcheck_is_obj_initialized(object->pointer, object->size))
return false;
 
+   kasan_disable_local();
object->checksum = crc32(0, (void *)object->pointer, object->size);
+   kasan_enable_local();
+
return object->checksum != old_csum;
 }
 
@@ -1164,7 +1168,9 @@ static void scan_block(void *_start, void *_end,
  BYTES_PER_POINTER))
continue;
 
+   kasan_disable_local();
pointer = *ptr;
+   kasan_enable_local();
 
object = find_and_get_object(pointer, 1);
if (!object)
-- 
2.1.1

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


[PATCH v3 11/13] kmemleak: disable kasan instrumentation for kmemleak

2014-09-24 Thread Andrey Ryabinin
kmalloc internally round up allocation size, and kmemleak
uses rounded up size as object's size. This makes kasan
to complain while kmemleak scans memory or calculates of object's
checksum. The simplest solution here is to disable kasan.

Signed-off-by: Andrey Ryabinin a.ryabi...@samsung.com
---
 mm/kmemleak.c | 6 ++
 1 file changed, 6 insertions(+)

diff --git a/mm/kmemleak.c b/mm/kmemleak.c
index 3cda50c..9bda1b3 100644
--- a/mm/kmemleak.c
+++ b/mm/kmemleak.c
@@ -98,6 +98,7 @@
 #include asm/processor.h
 #include linux/atomic.h
 
+#include linux/kasan.h
 #include linux/kmemcheck.h
 #include linux/kmemleak.h
 #include linux/memory_hotplug.h
@@ -1113,7 +1114,10 @@ static bool update_checksum(struct kmemleak_object 
*object)
if (!kmemcheck_is_obj_initialized(object-pointer, object-size))
return false;
 
+   kasan_disable_local();
object-checksum = crc32(0, (void *)object-pointer, object-size);
+   kasan_enable_local();
+
return object-checksum != old_csum;
 }
 
@@ -1164,7 +1168,9 @@ static void scan_block(void *_start, void *_end,
  BYTES_PER_POINTER))
continue;
 
+   kasan_disable_local();
pointer = *ptr;
+   kasan_enable_local();
 
object = find_and_get_object(pointer, 1);
if (!object)
-- 
2.1.1

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/