* [PATCH] drm/nouveau/debugfs: Simplify character output in nouveau_debugfs_vbios_image() @ 2024-07-15 11:48 Markus Elfring 2024-07-15 13:15 ` Ilia Mirkin 0 siblings, 1 reply; 6+ messages in thread From: Markus Elfring @ 2024-07-15 11:48 UTC (permalink / raw) To: nouveau, dri-devel, kernel-janitors, Christophe Jaillet, Daniel Vetter, Danilo Krummrich, David Airlie, Karol Herbst, Lyude Paul Cc: LKML From: Markus Elfring <elfring@users.sourceforge.net> Date: Mon, 15 Jul 2024 13:36:54 +0200 Single characters should be put into a sequence. Thus use the corresponding function “seq_putc” for one selected call. This issue was transformed by using the Coccinelle software. Suggested-by: Christophe Jaillet <christophe.jaillet@wanadoo.fr> Signed-off-by: Markus Elfring <elfring@users.sourceforge.net> --- drivers/gpu/drm/nouveau/nouveau_debugfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/nouveau/nouveau_debugfs.c b/drivers/gpu/drm/nouveau/nouveau_debugfs.c index e83db051e851..931b62097366 100644 --- a/drivers/gpu/drm/nouveau/nouveau_debugfs.c +++ b/drivers/gpu/drm/nouveau/nouveau_debugfs.c @@ -42,7 +42,7 @@ nouveau_debugfs_vbios_image(struct seq_file *m, void *data) int i; for (i = 0; i < drm->vbios.length; i++) - seq_printf(m, "%c", drm->vbios.data[i]); + seq_putc(m, drm->vbios.data[i]); return 0; } -- 2.45.2 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] drm/nouveau/debugfs: Simplify character output in nouveau_debugfs_vbios_image() 2024-07-15 11:48 [PATCH] drm/nouveau/debugfs: Simplify character output in nouveau_debugfs_vbios_image() Markus Elfring @ 2024-07-15 13:15 ` Ilia Mirkin 2024-07-23 16:23 ` [PATCH v2] drm/nouveau/debugfs: Optimise data " Markus Elfring 2024-07-23 16:57 ` [PATCH] drm/nouveau/debugfs: Simplify character " Christophe JAILLET 0 siblings, 2 replies; 6+ messages in thread From: Ilia Mirkin @ 2024-07-15 13:15 UTC (permalink / raw) To: Markus Elfring Cc: nouveau, dri-devel, kernel-janitors, Christophe Jaillet, Daniel Vetter, Danilo Krummrich, David Airlie, Karol Herbst, Lyude Paul, LKML On Mon, Jul 15, 2024 at 7:49 AM Markus Elfring <Markus.Elfring@web.de> wrote: > > From: Markus Elfring <elfring@users.sourceforge.net> > Date: Mon, 15 Jul 2024 13:36:54 +0200 > > Single characters should be put into a sequence. > Thus use the corresponding function “seq_putc” for one selected call. > > This issue was transformed by using the Coccinelle software. > > Suggested-by: Christophe Jaillet <christophe.jaillet@wanadoo.fr> > Signed-off-by: Markus Elfring <elfring@users.sourceforge.net> > --- > drivers/gpu/drm/nouveau/nouveau_debugfs.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/nouveau/nouveau_debugfs.c b/drivers/gpu/drm/nouveau/nouveau_debugfs.c > index e83db051e851..931b62097366 100644 > --- a/drivers/gpu/drm/nouveau/nouveau_debugfs.c > +++ b/drivers/gpu/drm/nouveau/nouveau_debugfs.c > @@ -42,7 +42,7 @@ nouveau_debugfs_vbios_image(struct seq_file *m, void *data) > int i; > > for (i = 0; i < drm->vbios.length; i++) > - seq_printf(m, "%c", drm->vbios.data[i]); > + seq_putc(m, drm->vbios.data[i]); Is there some reason this whole thing isn't just seq_write(m, drm->vbios.data, drm->vbios.length) > return 0; > } > > -- > 2.45.2 > ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v2] drm/nouveau/debugfs: Optimise data output in nouveau_debugfs_vbios_image() 2024-07-15 13:15 ` Ilia Mirkin @ 2024-07-23 16:23 ` Markus Elfring 2024-07-23 16:57 ` [PATCH] drm/nouveau/debugfs: Simplify character " Christophe JAILLET 1 sibling, 0 replies; 6+ messages in thread From: Markus Elfring @ 2024-07-23 16:23 UTC (permalink / raw) To: nouveau, dri-devel, kernel-janitors, Christophe Jaillet, Daniel Vetter, Danilo Krummrich, David Airlie, Ilia Mirkin, Karol Herbst, Lyude Paul Cc: LKML From: Markus Elfring <elfring@users.sourceforge.net> Date: Tue, 23 Jul 2024 18:08:15 +0200 Some characters should be put into a sequence. * Thus print all data by the corresponding function “seq_write” at once. * Return also the value from this function call. * Omit a local variable which became redundant with this refactoring. This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring <elfring@users.sourceforge.net> --- V2: A patch review suggestion from Ilia Mirkin was integrated. drivers/gpu/drm/nouveau/nouveau_debugfs.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/drivers/gpu/drm/nouveau/nouveau_debugfs.c b/drivers/gpu/drm/nouveau/nouveau_debugfs.c index e83db051e851..980cff265060 100644 --- a/drivers/gpu/drm/nouveau/nouveau_debugfs.c +++ b/drivers/gpu/drm/nouveau/nouveau_debugfs.c @@ -39,11 +39,8 @@ nouveau_debugfs_vbios_image(struct seq_file *m, void *data) { struct drm_info_node *node = (struct drm_info_node *) m->private; struct nouveau_drm *drm = nouveau_drm(node->minor->dev); - int i; - for (i = 0; i < drm->vbios.length; i++) - seq_printf(m, "%c", drm->vbios.data[i]); - return 0; + return seq_write(m, drm->vbios.data, drm->vbios.length); } static int -- 2.45.2 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] drm/nouveau/debugfs: Simplify character output in nouveau_debugfs_vbios_image() 2024-07-15 13:15 ` Ilia Mirkin 2024-07-23 16:23 ` [PATCH v2] drm/nouveau/debugfs: Optimise data " Markus Elfring @ 2024-07-23 16:57 ` Christophe JAILLET 2024-07-23 17:03 ` Ilia Mirkin 2024-07-24 9:30 ` Markus Elfring 1 sibling, 2 replies; 6+ messages in thread From: Christophe JAILLET @ 2024-07-23 16:57 UTC (permalink / raw) To: Ilia Mirkin Cc: nouveau, dri-devel, kernel-janitors, Daniel Vetter, Danilo Krummrich, David Airlie, Karol Herbst, Lyude Paul, LKML, Markus Elfring Le 15/07/2024 à 15:15, Ilia Mirkin a écrit : > On Mon, Jul 15, 2024 at 7:49 AM Markus Elfring <Markus.Elfring@web.de> wrote: >> >> From: Markus Elfring <elfring@users.sourceforge.net> >> Date: Mon, 15 Jul 2024 13:36:54 +0200 >> >> Single characters should be put into a sequence. >> Thus use the corresponding function “seq_putc” for one selected call. >> >> This issue was transformed by using the Coccinelle software. >> >> Suggested-by: Christophe Jaillet <christophe.jaillet@wanadoo.fr> >> Signed-off-by: Markus Elfring <elfring@users.sourceforge.net> >> --- >> drivers/gpu/drm/nouveau/nouveau_debugfs.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/gpu/drm/nouveau/nouveau_debugfs.c b/drivers/gpu/drm/nouveau/nouveau_debugfs.c >> index e83db051e851..931b62097366 100644 >> --- a/drivers/gpu/drm/nouveau/nouveau_debugfs.c >> +++ b/drivers/gpu/drm/nouveau/nouveau_debugfs.c >> @@ -42,7 +42,7 @@ nouveau_debugfs_vbios_image(struct seq_file *m, void *data) >> int i; >> >> for (i = 0; i < drm->vbios.length; i++) >> - seq_printf(m, "%c", drm->vbios.data[i]); >> + seq_putc(m, drm->vbios.data[i]); > > Is there some reason this whole thing isn't just > > seq_write(m, drm->vbios.data, drm->vbios.length) Hi, I don't know if my answer is relevant or not here but: for () seq_putc(); ==> will fill 'm' with everything that fits in and seq_write() ==> is all or nothing. So if 'm' is too small, then nothing will be appended. I've not looked at the calling tree, but I would expect 'm' to be able to have PAGE_SIZE chars, so most probably 4096. And having gpu + "vbios.rom", I would expect it to be bigger than 4096. If I'm correct, then changing for seq_write() would just show... nothing. I don't know if it can happen., but testing should be easy enough to figure it out. just my 2c. CJ > >> return 0; >> } >> >> -- >> 2.45.2 >> > > ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] drm/nouveau/debugfs: Simplify character output in nouveau_debugfs_vbios_image() 2024-07-23 16:57 ` [PATCH] drm/nouveau/debugfs: Simplify character " Christophe JAILLET @ 2024-07-23 17:03 ` Ilia Mirkin 2024-07-24 9:30 ` Markus Elfring 1 sibling, 0 replies; 6+ messages in thread From: Ilia Mirkin @ 2024-07-23 17:03 UTC (permalink / raw) To: Christophe JAILLET Cc: nouveau, dri-devel, kernel-janitors, Daniel Vetter, Danilo Krummrich, David Airlie, Karol Herbst, Lyude Paul, LKML, Markus Elfring On Tue, Jul 23, 2024 at 12:58 PM Christophe JAILLET <christophe.jaillet@wanadoo.fr> wrote: > > Le 15/07/2024 à 15:15, Ilia Mirkin a écrit : > > On Mon, Jul 15, 2024 at 7:49 AM Markus Elfring <Markus.Elfring@web.de> wrote: > >> > >> From: Markus Elfring <elfring@users.sourceforge.net> > >> Date: Mon, 15 Jul 2024 13:36:54 +0200 > >> > >> Single characters should be put into a sequence. > >> Thus use the corresponding function “seq_putc” for one selected call. > >> > >> This issue was transformed by using the Coccinelle software. > >> > >> Suggested-by: Christophe Jaillet <christophe.jaillet@wanadoo.fr> > >> Signed-off-by: Markus Elfring <elfring@users.sourceforge.net> > >> --- > >> drivers/gpu/drm/nouveau/nouveau_debugfs.c | 2 +- > >> 1 file changed, 1 insertion(+), 1 deletion(-) > >> > >> diff --git a/drivers/gpu/drm/nouveau/nouveau_debugfs.c b/drivers/gpu/drm/nouveau/nouveau_debugfs.c > >> index e83db051e851..931b62097366 100644 > >> --- a/drivers/gpu/drm/nouveau/nouveau_debugfs.c > >> +++ b/drivers/gpu/drm/nouveau/nouveau_debugfs.c > >> @@ -42,7 +42,7 @@ nouveau_debugfs_vbios_image(struct seq_file *m, void *data) > >> int i; > >> > >> for (i = 0; i < drm->vbios.length; i++) > >> - seq_printf(m, "%c", drm->vbios.data[i]); > >> + seq_putc(m, drm->vbios.data[i]); > > > > Is there some reason this whole thing isn't just > > > > seq_write(m, drm->vbios.data, drm->vbios.length) > > Hi, > > I don't know if my answer is relevant or not here but: > for () seq_putc(); ==> will fill 'm' with everything that fits in > and > seq_write() ==> is all or nothing. So if 'm' is too small, then > nothing will be appended. > > I've not looked at the calling tree, but I would expect 'm' to be able > to have PAGE_SIZE chars, so most probably 4096. > > And having gpu + "vbios.rom", I would expect it to be bigger than 4096. > > If I'm correct, then changing for seq_write() would just show... nothing. > > > I don't know if it can happen., but testing should be easy enough to > figure it out. The vbios can definitely be much much larger than 4k. But it does currently work as-is, i.e. you don't just get the first 4k, you get everything. So I think there's some internal resizing/extension/etc going on. But I totally agree -- testing required here. Not sure if the author has done that. Cheers, -ilia ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] drm/nouveau/debugfs: Simplify character output in nouveau_debugfs_vbios_image() 2024-07-23 16:57 ` [PATCH] drm/nouveau/debugfs: Simplify character " Christophe JAILLET 2024-07-23 17:03 ` Ilia Mirkin @ 2024-07-24 9:30 ` Markus Elfring 1 sibling, 0 replies; 6+ messages in thread From: Markus Elfring @ 2024-07-24 9:30 UTC (permalink / raw) To: Christophe Jaillet, Ilia Mirkin, nouveau, dri-devel, kernel-janitors Cc: Daniel Vetter, Danilo Krummrich, David Airlie, Karol Herbst, Lyude Paul, LKML >> Is there some reason this whole thing isn't just >> >> seq_write(m, drm->vbios.data, drm->vbios.length) … > I don't know if my answer is relevant or not here but: > for () seq_putc(); ==> will fill 'm' with everything that fits in I find such a discussion approach strange. > and > seq_write() ==> is all or nothing. So if 'm' is too small, then nothing will be appended. The clarification can become more interesting for this system detail. https://elixir.bootlin.com/linux/v6.10/source/fs/seq_file.c#L816 Was the sequence size (or the file capacity) appropriately configured? Regards, Markus ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2024-07-24 9:31 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-07-15 11:48 [PATCH] drm/nouveau/debugfs: Simplify character output in nouveau_debugfs_vbios_image() Markus Elfring 2024-07-15 13:15 ` Ilia Mirkin 2024-07-23 16:23 ` [PATCH v2] drm/nouveau/debugfs: Optimise data " Markus Elfring 2024-07-23 16:57 ` [PATCH] drm/nouveau/debugfs: Simplify character " Christophe JAILLET 2024-07-23 17:03 ` Ilia Mirkin 2024-07-24 9:30 ` Markus Elfring
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox