Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1599201 > unrolled thread

[PATCH] staging: atomisp: use k{v}zalloc instead of k{v}alloc and memset

Started byDaeseok Youn <daeseok.youn@gmail.com>
First post2017-03-13 12:00 +0100
Last post2017-03-14 02:20 +0100
Articles 6 — 4 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH] staging: atomisp: use k{v}zalloc instead of k{v}alloc and  memset Daeseok Youn <daeseok.youn@gmail.com> - 2017-03-13 12:00 +0100
    Re: [PATCH] staging: atomisp: use k{v}zalloc instead of k{v}alloc  and memset Dan Carpenter <dan.carpenter@oracle.com> - 2017-03-13 13:00 +0100
      Re: [PATCH] staging: atomisp: use k{v}zalloc instead of k{v}alloc and memset DaeSeok Youn <daeseok.youn@gmail.com> - 2017-03-13 15:10 +0100
        Re: [PATCH] staging: atomisp: use k{v}zalloc instead of k{v}alloc and memset DaeSeok Youn <daeseok.youn@gmail.com> - 2017-03-13 16:50 +0100
    Re: [PATCH] staging: atomisp: use k{v}zalloc instead of k{v}alloc  and memset Alan Cox <alan@linux.intel.com> - 2017-03-13 19:00 +0100
      Re: [PATCH] staging: atomisp: use k{v}zalloc instead of k{v}alloc and memset DaeSeok Youn <daeseok.youn@gmail.com> - 2017-03-14 02:20 +0100

#1599201 — [PATCH] staging: atomisp: use k{v}zalloc instead of k{v}alloc and memset

FromDaeseok Youn <daeseok.youn@gmail.com>
Date2017-03-13 12:00 +0100
Subject[PATCH] staging: atomisp: use k{v}zalloc instead of k{v}alloc and memset
Message-ID<tkvRL-7Mz-1@gated-at.bofh.it>
If the atomisp_kernel_zalloc() has "true" as a second parameter, it
tries to allocate zeroing memory from kmalloc(vmalloc) and memset.
But using kzalloc is rather than kmalloc followed by memset with 0.
(vzalloc is for same reason with kzalloc)

And also atomisp_kernel_malloc() can be used with
atomisp_kernel_zalloc(<size>, false);

Signed-off-by: Daeseok Youn <daeseok.youn@gmail.com>
---
I think kvmalloc() or kvzalloc() can be used to allocate memory if there is
no reason to use vmalloc() when the requested bytes is over PAGE_SIZE.

 .../media/atomisp/pci/atomisp2/atomisp_cmd.c       | 25 ++++++++++++----------
 1 file changed, 14 insertions(+), 11 deletions(-)

diff --git a/drivers/staging/media/atomisp/pci/atomisp2/atomisp_cmd.c b/drivers/staging/media/atomisp/pci/atomisp2/atomisp_cmd.c
index d9a5c24..44b2244 100644
--- a/drivers/staging/media/atomisp/pci/atomisp2/atomisp_cmd.c
+++ b/drivers/staging/media/atomisp/pci/atomisp2/atomisp_cmd.c
@@ -86,32 +86,35 @@
 };
 
 /*
- * atomisp_kernel_malloc: chooses whether kmalloc() or vmalloc() is preferable.
+ * atomisp_kernel_malloc:
+ * allocating memory from atomisp_kernel_zalloc() without zeroing memory.
  *
  * It is also a wrap functions to pass into css framework.
  */
 void *atomisp_kernel_malloc(size_t bytes)
 {
-	/* vmalloc() is preferable if allocating more than 1 page */
-	if (bytes > PAGE_SIZE)
-		return vmalloc(bytes);
-
-	return kmalloc(bytes, GFP_KERNEL);
+	return atomisp_kernel_zalloc(bytes, false);
 }
 
 /*
- * atomisp_kernel_zalloc: chooses whether set 0 to the allocated memory.
+ * atomisp_kernel_zalloc: chooses whether set 0 to the allocated memory
+ * with k{z,m}alloc or v{z,m}alloc
  *
  * It is also a wrap functions to pass into css framework.
  */
 void *atomisp_kernel_zalloc(size_t bytes, bool zero_mem)
 {
-	void *ptr = atomisp_kernel_malloc(bytes);
+	/* vmalloc() is preferable if allocating more than 1 page */
+	if (bytes > PAGE_SIZE) {
+		if (zero_mem)
+			return vzalloc(bytes);
+		return vmalloc(bytes);
+	}
 
-	if (ptr && zero_mem)
-		memset(ptr, 0, bytes);
+	if (zero_mem)
+		return kzalloc(bytes, GFP_KERNEL);
 
-	return ptr;
+	return kmalloc(bytes, GFP_KERNEL);
 }
 
 /*
-- 
1.9.1

[toc] | [next] | [standalone]


#1599253 — Re: [PATCH] staging: atomisp: use k{v}zalloc instead of k{v}alloc and memset

FromDan Carpenter <dan.carpenter@oracle.com>
Date2017-03-13 13:00 +0100
SubjectRe: [PATCH] staging: atomisp: use k{v}zalloc instead of k{v}alloc and memset
Message-ID<tkwNQ-8qX-23@gated-at.bofh.it>
In reply to#1599201
On Mon, Mar 13, 2017 at 07:54:21PM +0900, Daeseok Youn wrote:
> If the atomisp_kernel_zalloc() has "true" as a second parameter, it
> tries to allocate zeroing memory from kmalloc(vmalloc) and memset.
> But using kzalloc is rather than kmalloc followed by memset with 0.
> (vzalloc is for same reason with kzalloc)
> 
> And also atomisp_kernel_malloc() can be used with
> atomisp_kernel_zalloc(<size>, false);
> 

We should just change all the callers to kvmalloc() and kvzmalloc().

regards,
dan carpenter

[toc] | [prev] | [next] | [standalone]


#1599407 — Re: [PATCH] staging: atomisp: use k{v}zalloc instead of k{v}alloc and memset

FromDaeSeok Youn <daeseok.youn@gmail.com>
Date2017-03-13 15:10 +0100
SubjectRe: [PATCH] staging: atomisp: use k{v}zalloc instead of k{v}alloc and memset
Message-ID<tkyPD-1D6-21@gated-at.bofh.it>
In reply to#1599253
2017-03-13 20:51 GMT+09:00 Dan Carpenter <dan.carpenter@oracle.com>:
> On Mon, Mar 13, 2017 at 07:54:21PM +0900, Daeseok Youn wrote:
>> If the atomisp_kernel_zalloc() has "true" as a second parameter, it
>> tries to allocate zeroing memory from kmalloc(vmalloc) and memset.
>> But using kzalloc is rather than kmalloc followed by memset with 0.
>> (vzalloc is for same reason with kzalloc)
>>
>> And also atomisp_kernel_malloc() can be used with
>> atomisp_kernel_zalloc(<size>, false);
>>
>
> We should just change all the callers to kvmalloc() and kvzmalloc().
ok. I will try to change all the callers to kvmalloc() and kvzalloc().

Thanks.
Regards,
Daeseok Youn
>
> regards,
> dan carpenter
>

[toc] | [prev] | [next] | [standalone]


#1599536 — Re: [PATCH] staging: atomisp: use k{v}zalloc instead of k{v}alloc and memset

FromDaeSeok Youn <daeseok.youn@gmail.com>
Date2017-03-13 16:50 +0100
SubjectRe: [PATCH] staging: atomisp: use k{v}zalloc instead of k{v}alloc and memset
Message-ID<tkAor-2CJ-45@gated-at.bofh.it>
In reply to#1599407
2017-03-13 23:07 GMT+09:00 DaeSeok Youn <daeseok.youn@gmail.com>:
> 2017-03-13 20:51 GMT+09:00 Dan Carpenter <dan.carpenter@oracle.com>:
>> On Mon, Mar 13, 2017 at 07:54:21PM +0900, Daeseok Youn wrote:
>>> If the atomisp_kernel_zalloc() has "true" as a second parameter, it
>>> tries to allocate zeroing memory from kmalloc(vmalloc) and memset.
>>> But using kzalloc is rather than kmalloc followed by memset with 0.
>>> (vzalloc is for same reason with kzalloc)
>>>
>>> And also atomisp_kernel_malloc() can be used with
>>> atomisp_kernel_zalloc(<size>, false);
>>>
>>
>> We should just change all the callers to kvmalloc() and kvzmalloc().
> ok. I will try to change all the callers to kvmalloc() and kvzalloc().

The kvmalloc() and kvzalloc() are not ready to use in staging-testing
branch on staging tree.
If the kvmalloc and kvzalloc are available to use, I will replace
atomisp_kernel_malloc() and atomisp_kernel_zalloc() with kvmalloc()
and kvzalloc().

Thanks.
Regards,
Daeseok Youn.


>
> Thanks.
> Regards,
> Daeseok Youn
>>
>> regards,
>> dan carpenter
>>

[toc] | [prev] | [next] | [standalone]


#1599661 — Re: [PATCH] staging: atomisp: use k{v}zalloc instead of k{v}alloc and memset

FromAlan Cox <alan@linux.intel.com>
Date2017-03-13 19:00 +0100
SubjectRe: [PATCH] staging: atomisp: use k{v}zalloc instead of k{v}alloc and memset
Message-ID<tkCqe-422-11@gated-at.bofh.it>
In reply to#1599201
On Mon, 2017-03-13 at 19:54 +0900, Daeseok Youn wrote:
> If the atomisp_kernel_zalloc() has "true" as a second parameter, it
> tries to allocate zeroing memory from kmalloc(vmalloc) and memset.
> But using kzalloc is rather than kmalloc followed by memset with 0.
> (vzalloc is for same reason with kzalloc)

This is true but please don't apply this. There are about five other
layers of indirection for memory allocators that want removing first so
that the driver just uses the correct kmalloc/kzalloc/kv* functions in
the right places.

Alan

[toc] | [prev] | [next] | [standalone]


#1599965 — Re: [PATCH] staging: atomisp: use k{v}zalloc instead of k{v}alloc and memset

FromDaeSeok Youn <daeseok.youn@gmail.com>
Date2017-03-14 02:20 +0100
SubjectRe: [PATCH] staging: atomisp: use k{v}zalloc instead of k{v}alloc and memset
Message-ID<tkJi2-12I-9@gated-at.bofh.it>
In reply to#1599661
2017-03-14 2:54 GMT+09:00 Alan Cox <alan@linux.intel.com>:
>
> On Mon, 2017-03-13 at 19:54 +0900, Daeseok Youn wrote:
> > If the atomisp_kernel_zalloc() has "true" as a second parameter, it
> > tries to allocate zeroing memory from kmalloc(vmalloc) and memset.
> > But using kzalloc is rather than kmalloc followed by memset with 0.
> > (vzalloc is for same reason with kzalloc)
>
> This is true but please don't apply this. There are about five other
> layers of indirection for memory allocators that want removing first so
> that the driver just uses the correct kmalloc/kzalloc/kv* functions in
> the right places.
right. kvmalloc/kvzalloc would be used after preparing those
interfaces in staging tree.
I will try to change all the atomisp_kernel_m{z}alloc() callers to
correct functions to allocate memory.

Thanks.
Regards,
Jake.

>
> Alan
>

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web