Re: [PATCH] fbcon: use kvmalloc() for scrollback buffer

2018-12-21 Thread Konstantin Khorenko
Hi Bartlomiej,

On 12/20/2018 07:21 PM, Bartlomiej Zolnierkiewicz wrote:
> On 11/26/2018 11:02 AM, Konstantin Khorenko wrote:
>> Scrollback frame buffer is rather big - 32K,
>> so it requires 3rd order page, so let's use kvmalloc() instead of
>> ordinary kmalloc() for it.
>
> Is it actually safe to use non-contiguous memory for softback_buf?

Well, that's why we need a review. :)

i've asked myself same question while fixing this,
i've dig sources a bit and did not find places when softback_buf is provided 
for DMA,
all other places seems to work with virtual addresses, so there should be no 
problem.

Even more i saw a function which mentions that softback might be non-contigious:

/* As we might be inside of softback, we may work with non-contiguous buffer,
that's why we have to use a separate routine. */
static void fbcon_invert_region(struct vc_data *vc, u16 * p, int cnt)

So i think it's safe to use kvmalloc() here.

--
Best regards,

Konstantin Khorenko,
Virtuozzo Linux Kernel Team

>> Signed-off-by: Konstantin Khorenko 
>> ---
>>  drivers/video/fbdev/core/fbcon.c | 6 +++---
>>  1 file changed, 3 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/video/fbdev/core/fbcon.c 
>> b/drivers/video/fbdev/core/fbcon.c
>> index 8958ccc8b1ac..2b1a34d3f5e2 100644
>> --- a/drivers/video/fbdev/core/fbcon.c
>> +++ b/drivers/video/fbdev/core/fbcon.c
>> @@ -992,7 +992,7 @@ static const char *fbcon_startup(void)
>>  if (!softback_buf) {
>>  softback_buf =
>>  (unsigned long)
>> -kmalloc(fbcon_softback_size,
>> +kvmalloc(fbcon_softback_size,
>>  GFP_KERNEL);
>>  if (!softback_buf) {
>>  fbcon_softback_size = 0;
>> @@ -1001,7 +1001,7 @@ static const char *fbcon_startup(void)
>>  }
>>  } else {
>>  if (softback_buf) {
>> -kfree((void *) softback_buf);
>> +kvfree((void *) softback_buf);
>>  softback_buf = 0;
>>  softback_top = 0;
>>  }
>> @@ -3665,7 +3665,7 @@ static void fbcon_exit(void)
>>  }
>>  #endif
>>
>> -kfree((void *)softback_buf);
>> +kvfree((void *)softback_buf);
>>  softback_buf = 0UL;
>>
>>  for_each_registered_fb(i) {
>
> Best regards,
> --
> Bartlomiej Zolnierkiewicz
> Samsung R&D Institute Poland
> Samsung Electronics
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


[PATCH] fbcon: use kvmalloc() for scrollback buffer

2018-11-27 Thread Konstantin Khorenko
Scrollback frame buffer is rather big - 32K,
so it requires 3rd order page, so let's use kvmalloc() instead of
ordinary kmalloc() for it.

Signed-off-by: Konstantin Khorenko 
---
 drivers/video/fbdev/core/fbcon.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/video/fbdev/core/fbcon.c b/drivers/video/fbdev/core/fbcon.c
index 8958ccc8b1ac..2b1a34d3f5e2 100644
--- a/drivers/video/fbdev/core/fbcon.c
+++ b/drivers/video/fbdev/core/fbcon.c
@@ -992,7 +992,7 @@ static const char *fbcon_startup(void)
if (!softback_buf) {
softback_buf =
(unsigned long)
-   kmalloc(fbcon_softback_size,
+   kvmalloc(fbcon_softback_size,
GFP_KERNEL);
if (!softback_buf) {
fbcon_softback_size = 0;
@@ -1001,7 +1001,7 @@ static const char *fbcon_startup(void)
}
} else {
if (softback_buf) {
-   kfree((void *) softback_buf);
+   kvfree((void *) softback_buf);
softback_buf = 0;
softback_top = 0;
}
@@ -3665,7 +3665,7 @@ static void fbcon_exit(void)
}
 #endif
 
-   kfree((void *)softback_buf);
+   kvfree((void *)softback_buf);
softback_buf = 0UL;
 
for_each_registered_fb(i) {
-- 
2.15.1

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel