Thread (18 messages) flat view 18 messages, 3 authors, 2021-11-24

Re: [PATCH v3 6/7] 9p/trans_virtio: support larger msize values

From: Christian Schoenebeck <linux_oss@crudebyte.com>
Date: 2021-11-24 12:28:48

On Montag, 22. November 2021 23:35:18 CET Dominique Martinet wrote:
Christian Schoenebeck wrote on Mon, Nov 22, 2021 at 02:32:23PM +0100:
quoted
I "think" this could be used for all 9p message types except for the
listed
former three, but I'll review the 9p specs more carefully before v4. For
Tread and Twrite we already received the requested size, which just
leaves Treaddir, which is however indeed tricky, because I don't think we
have any info how many directory entries we could expect.
count in Treaddir is a number of bytes, not a number of entries -- so
it's perfect for this as well :)
Yes it is in bytes, but it's currently always simply msize - P9_READDIRHDRSZ:
https://github.com/torvalds/linux/blob/5d9f4cf36721aba199975a9be7863a3ff5cd4b59/fs/9p/vfs_dir.c#L159

As my planned milestone for this series is max. 4 MB msize, it might be okay
for now, but it is something to keep in mind and should be checked whether it
will slow down things.

On the long term, when msize >4MB is supported, this definitely must be
addressed.
quoted
A simple compile time constant (e.g. one macro) could be used instead of
this function. If you prefer a constant instead, I could go for it in v4
of course. For this 9p client I would recommend a function though, simply
because this code has already seen some authors come and go over the
years, so it might be worth the redundant code for future safety. But
I'll adapt to what others think.
In this case a fallback constant seems simpler than a big switch like
you've done, but honestly I'm not fussy at this point -- if you work on
this you have the right to decide this kind of things in my opinion.

My worry with the snippet you listed is that you need to enumerate all
calls again, so if someday the protocol is extended it'll be a place to
forget adding new calls (although compiler warnings help with that),
whereas a fallback constant will always work as long as it's small
messages.

But really, as long as it's not horrible I'll take it :)
Maybe I can find a compromise. :)

Best regards,
Christian Schoenebeck

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help