From: Willy Tarreau <w@1wt.eu>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Denis Efremov <efremov@linux.com>, Jens Axboe <axboe@kernel.dk>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
linux-block <linux-block@vger.kernel.org>
Subject: Re: [PATCH 01/10] floppy: cleanup: expand macro FDCS
Date: Wed, 26 Feb 2020 09:18:08 +0100 [thread overview]
Message-ID: <20200226081808.GA1589@1wt.eu> (raw)
In-Reply-To: <CAHk-=wggnfCR2JcC-U9LxfeBo2UMagd-neEs8PwDHsGVfLfS=Q@mail.gmail.com>
On Tue, Feb 25, 2020 at 10:08:51AM -0800, Linus Torvalds wrote:
> We should at least try moving those bits to the floppy.c file and
> remove it from the header file.
>
> For example, doing a Debian code search on "FDPATCHES" doesn't find
> any user space hits. Searching for "FD_STATUS" gets a lot of hits, but
> thos all seem to be because it's a symbol used by user space programs,
> ("file descriptor status"), not because those hits actually used the
> fdreg.h header file.
>
> So we can remove at least the FD_IOPORT mess from the header file, I bet.
OK so I think this time I managed to get it done after two failed attempts.
I've sent in response to this thread 6 new patches to the series just for
validation (11 to 16), I'll spam relevant people when resending the whole
if we agree on the principle already.
First, still no single byte change in the output code:
willy@wtap:master$ diff -u floppy-{before,after}.s
--- floppy-before.s 2020-02-26 08:59:04.185152450 +0100
+++ floppy-after.s 2020-02-26 08:58:58.253156733 +0100
@@ -1,5 +1,5 @@
-floppy-before.o: file format elf64-x86-64
+floppy-after.o: file format elf64-x86-64
Disassembly of section .text:
Second, I could kill FD_IOPORT entirely. The FD_* macros are now
just the registers offsets. I've added two local functions fdc_inb()
and fdc_outb() which take an fdc and the register, and remap this
to fd_inb() and fd_outb() so that we don't need to fiddle anymore
with "fdc". I had one attempt at propagating that cleanup (base+reg
instead of port) to various archs, it was OK but didn't bring any
visible value in my opinion.
Third, I renamed "fdc" to "current_fdc" and carefully replaced all
"fdc" instances which didn't build with "current_fdc". This revealed
that at many places we iterate over current_fdc just because it was
the required name for the register macro (which used to derive from
FD_IOPORT). So at this point I'm still seeing a lot of possible
cleanups which will produce different binary output but will be quite
more reviewable. The common pattern in floppy.c is :
for (current_fdc = 0; current_fdc < N_FDC; current_fdc++) {
do_something(current_fdc);
}
current_fdc = 0;
or:
for (i = 0; i < N_FDC; i++) {
current_fdc = i;
do_something(current_fdc);
}
current_fdc = 0;
These ones can safely be cleaned up.
I also thought that once done we could have a "current_fdc" being a
struct floppy_fdc_state* instead of an int and directly point to the
correct fdc_state. This way we'll regain a lot of readability in the
code.
Please just tell me what you think and if I should repost a whole
series and/or continue the cleanup.
Thanks,
Willy
next prev parent reply other threads:[~2020-02-26 8:18 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-02-24 21:23 [PATCH 00/10] floppy driver cleanups (deobfuscation) Willy Tarreau
2020-02-24 21:23 ` [PATCH 01/10] floppy: cleanup: expand macro FDCS Willy Tarreau
2020-02-24 21:53 ` Linus Torvalds
2020-02-24 23:13 ` Denis Efremov
2020-02-25 3:45 ` Willy Tarreau
2020-02-25 7:14 ` Denis Efremov
2020-02-25 14:02 ` Willy Tarreau
2020-02-25 15:22 ` Denis Efremov
2020-02-25 15:39 ` Denis Efremov
2020-02-25 16:12 ` Willy Tarreau
2020-02-25 18:02 ` Willy Tarreau
2020-02-25 18:08 ` Willy Tarreau
2020-02-25 18:08 ` Linus Torvalds
2020-02-25 18:15 ` Willy Tarreau
2020-02-25 18:27 ` Linus Torvalds
2020-02-26 8:18 ` Willy Tarreau [this message]
2020-02-25 11:37 ` Denis Efremov
2020-02-24 21:23 ` [PATCH 02/10] floppy: cleanup: expand macro UFDCS Willy Tarreau
2020-02-24 21:23 ` [PATCH 03/10] floppy: cleanup: expand macro UDP Willy Tarreau
2020-02-24 21:23 ` [PATCH 04/10] floppy: cleanup: expand macro UDRS Willy Tarreau
2020-02-24 21:23 ` [PATCH 05/10] floppy: cleanup: expand macro UDRWE Willy Tarreau
2020-02-24 21:23 ` [PATCH 06/10] floppy: cleanup: expand macro DP Willy Tarreau
2020-02-24 21:23 ` [PATCH 07/10] floppy: cleanup: expand macro DRS Willy Tarreau
2020-02-24 21:23 ` [PATCH 08/10] floppy: cleanup: expand macro DRWE Willy Tarreau
2020-02-24 21:23 ` [PATCH 09/10] floppy: cleanup: expand the R/W / format command macros Willy Tarreau
2020-02-24 21:23 ` [PATCH 10/10] floppy: cleanup: expand the reply_buffer macros Willy Tarreau
2020-02-26 8:07 ` [PATCH 11/16] floppy: remove dead code for drives scanning on ARM Willy Tarreau
2020-02-26 8:07 ` [PATCH 12/16] floppy: remove incomplete support for second FDC from ARM code Willy Tarreau
2020-02-29 16:38 ` Denis Efremov
2020-02-26 8:07 ` [PATCH 13/16] floppy: prepare ARM code to simplify base address separation Willy Tarreau
2020-02-26 8:07 ` [PATCH 14/16] floppy: introduce new functions fdc_inb() and fdc_outb() Willy Tarreau
2020-02-26 8:07 ` [PATCH 15/16] floppy: separate the FDC's base address from its registers Willy Tarreau
2020-02-26 15:36 ` Denis Efremov
2020-02-26 15:46 ` Willy Tarreau
2020-02-26 8:07 ` [PATCH 16/16] floppy: rename the global "fdc" variable to "current_fdc" Willy Tarreau
2020-03-01 8:21 ` [PATCH 11/16] floppy: remove dead code for drives scanning on ARM Denis Efremov
2020-03-01 8:59 ` Willy Tarreau
2020-02-26 14:57 ` [PATCH 00/10] floppy driver cleanups (deobfuscation) Denis Efremov
2020-02-26 17:49 ` Linus Torvalds
2020-02-26 18:41 ` Willy Tarreau
2020-02-29 14:13 ` Willy Tarreau
2020-02-29 15:58 ` Linus Torvalds
2020-02-29 23:19 ` Ondrej Zary
2020-03-01 6:46 ` Willy Tarreau
2020-03-01 17:01 ` Ondrej Zary
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200226081808.GA1589@1wt.eu \
--to=w@1wt.eu \
--cc=axboe@kernel.dk \
--cc=efremov@linux.com \
--cc=linux-block@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).