Re: [PATCH v1 0/3] serial: Do not count XON/XOFF in the statistics

Greg Kroah-Hartman
2024-04-09T13:46:33Z

On Thu, Apr 04, 2024 at 06:54:38PM +0300, Andy Shevchenko wrote:
> On Thu, Apr 04, 2024 at 07:16:55AM +0200, Jiri Slaby wrote:
> > On 04. 04. 24, 0:15, Andy Shevchenko wrote:
> > > Wed, Apr 03, 2024 at 05:46:14PM +0300, Andy Shevchenko kirjoitti:
> > > > Some drivers count XON/XOFF in the Tx statistics, some do not.
> > > > I actually a bit uncertain, but I _think_ the correct way is not
> > > > to count them, hence this series.
> > >
> > > Okay, it seems there are much more drivers doing that. Perhaps we need
> > > to add that to the rest in this case (i.o.w. invert the series from removal
> > > to addition)?
> >
> > Interesting, perhaps cut & paste?
> >
> > XON and XOFF are overhead IMO. So should not be counted. When they are, they
> > mangle statistics as in transmitted (real) bytes per second.
> >
> > How are they handled on the RX side?
>
> It took me a while.
>
> All serial drivers accept everything and those that care, update statics for
> anything they receive. This is because of layering. The Rx XON/XOFF seems
> (note I am completely unfamiliar with mysterious ways of TTY layers) to be
> handled on TTY level by n_tty_receive_char_flow_ctrl(), i.o.w. we may not
> skip counting it easily.
>
> Now the question is, shall we count the control characters on output or not?
> Whatever decision we made, we should document (if not yet) and align drivers
> accordingly.
>
> Another Q is what do books / other OS / projects usually do with them
> WRT statistics?

It depends on where you are measuring stuff.

If you want "raw" bytes on the wire, you count them. If you want to see
what the port sends based on what userspace sent/recieved, you don't.

> If we count everything on a wire, then we must count them, otherwise
> it depends on how we treat them.

Agreed. We need to pick one and stick with it.

I think, at the driver level, we should count it, as it's a ldisc thing,
not a driver thing, right?

thanks,

greg k-h