Thread (1333 messages) 1333 messages, 109 authors, 2024-01-05

Re: MD-RAID: Use seq_putc() in three status functions?

From: SF Markus Elfring <hidden>
Date: 2016-10-17 09:01:31
Also in: linux-raid, lkml, ltp

quoted
Calling the function "seq_putc" will be more efficient than "seq_printf"
in this case because of the following reasons.

1. How does the distribution look like for supported processor architectures
   where the data transfer for bytes (as a function call parameter)
   is faster than for (string) pointers?
How would I know?
How many processor architecture characteristics do you know already?

* Is a string pointer often longer than a byte?

* I imagine that it can become also interesting to check byte level data access
  under constraints of machine word sizes and alignment.

I would assume that _you_ did some measurements here;
How much would you trust in any concrete numbers I could present
for this use case?

Do you give more trust to a reference testing platform?

I could easily claim that seq_printf() is more efficient than
seq_putc(), and won't apply your patch.
This is also possible in principle.

So _you_ have to prove that your patch is more efficient.
How many results would we like to clarify from various hardware
and software combinations?

quoted
2. Did anybody measure already how many the execution times can vary
   for these functions?
Probably not.
Thanks for this information.

How important are the mentioned functions for you within the Linux
programming interface so far?

Unless _you_ prove that _your_ patch is more efficient it won't get applied.
Which data would you accept as a "prove" in this case?

quoted
   Where do you get doubts about its efficiency for the data processing
   of a single character?
Because it's being called at the end of a function calling seq_printf() already.
Interesting view …

So exchanging a single call is probably not helping anything,
as the compiler will optimize it anyway.
How common is the discussed software transformation between implementations
for optimising compilers?

Case in point: with your patch the x86_64 compiler generates nearly
identical code for driver/md/raid1.c, but with one instruction _more_
after your patch has been applied.
Which software versions and command parameters did you try out
for this information (from an unspecified run time environment)?

So it's not immediately obvious that your patch is an improvement.
I agree that there are system properties and constraints which can be
considered further.

Regards,
Markus
--
To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help