Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1599201 > unrolled thread
| Started by | Daeseok Youn <daeseok.youn@gmail.com> |
|---|---|
| First post | 2017-03-13 12:00 +0100 |
| Last post | 2017-03-14 02:20 +0100 |
| Articles | 6 — 4 participants |
Back to article view | Back to linux.kernel
[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
| From | Daeseok Youn <daeseok.youn@gmail.com> |
|---|---|
| Date | 2017-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]
| From | Dan Carpenter <dan.carpenter@oracle.com> |
|---|---|
| Date | 2017-03-13 13:00 +0100 |
| Subject | Re: [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]
| From | DaeSeok Youn <daeseok.youn@gmail.com> |
|---|---|
| Date | 2017-03-13 15:10 +0100 |
| Subject | Re: [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]
| From | DaeSeok Youn <daeseok.youn@gmail.com> |
|---|---|
| Date | 2017-03-13 16:50 +0100 |
| Subject | Re: [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]
| From | Alan Cox <alan@linux.intel.com> |
|---|---|
| Date | 2017-03-13 19:00 +0100 |
| Subject | Re: [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]
| From | DaeSeok Youn <daeseok.youn@gmail.com> |
|---|---|
| Date | 2017-03-14 02:20 +0100 |
| Subject | Re: [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