Re: [PATCH v3 0/5] console: Miscellaneous clean-ups, do not use FNTCHARCNT() in fbcon.c
From: Peilin Ye
Date: Sat Nov 14 2020 - 07:47:25 EST
On Sat, Nov 14, 2020 at 01:22:22PM +0100, Greg Kroah-Hartman wrote:
> On Sat, Nov 14, 2020 at 01:18:06PM +0100, Greg Kroah-Hartman wrote:
> > On Sat, Nov 14, 2020 at 03:10:21AM -0500, Peilin Ye wrote:
> > > Thanks for reviewing! Questions about the last patch [5/5] though, it
> > > depends on the following assumption:
> > >
> > > """
> > > For each console `idx`, `vc_cons[idx].d->vc_font.data` and
> > > `fb_display[idx].fontdata` always point to the same buffer.
> > > """
> > >
> > > Is this true? I think it is true by grepping for `fontdata`. I also
> > > noticed that fbcon.c is using `vc->vc_font.data` and `p->fontdata`
> > > interchangeably, see fbcon_get_requirement():
> > >
> > > vc = vc_cons[fg_console].d;
> > > [...]
> > > p = &fb_display[fg_console];
> > > caps->x = 1 << (vc->vc_font.width - 1);
> > > ^^^^^^^^^^^
> > > caps->y = 1 << (vc->vc_font.height - 1);
> > > ^^^^^^^^^^^
> > > caps->len = (p->userfont) ?
> > > FNTCHARCNT(p->fontdata) : 256;
> > > ^^^^^^^^^^^
> > >
> > > If it is true, then what is the point of using `fontdata` in `struct
> > > fbcon_display`? Just for the `userfont` flag? Should we delete
> > > `fontdata`, when we no longer need the `userfont` flag?
> >
> > Yes, after a quick look, I think your analysis here is correct. So if
> > you can delete that, it would be nice if possible.
I see, at the moment we still need `userfont` for refcount handling, I
will try to delete both `fontdata` and `userfont` after refcount is
taken care of.
> > > In this sense I think [5/5] needs more testing. Do we have test files
> > > for fbcon, or should I try to write some tests from scratch?
> >
> > I don't know of any direct tests, I usually just booted into that mode
> > and saw if everything looked like it did before. There must be some
> > tool that you can use to change the current font, as it seems to happen
> > at boot time on some distros. I can't remember what it's called at the
> > moment...
>
> Ah, here's a hint:
> https://wiki.archlinux.org/index.php/Linux_console#Fonts
>
> The setfont tool should help you out here.
Oh, I didn't know about this one. I'll go experimenting with it,
thank you!
Peilin Ye