From: "Gao, Liming" <liming.gao@intel.com>
To: Laszlo Ersek <lersek@redhat.com>,
"Zhang, Shenglei" <shenglei.zhang@intel.com>,
"edk2-devel@lists.01.org" <edk2-devel@lists.01.org>
Cc: "Dong, Eric" <eric.dong@intel.com>, "Zeng, Star" <star.zeng@intel.com>
Subject: Re: [PATCH] MdeModulePkg: Remove dead code in .c and .h files
Date: Mon, 6 Aug 2018 14:54:29 +0000 [thread overview]
Message-ID: <4A89E2EF3DFEDB4C8BFDE51014F606A14E2C6745@SHSMSX104.ccr.corp.intel.com> (raw)
In-Reply-To: <9cbf157b-6799-f7fd-16b5-71e121e8dc53@redhat.com>
Laszlo:
We manually search the unused functions in the module source files, and also verify the build to make sure the unused functions are real dead code. I agree to separate this patch as the module level. So, we can document which unused functions are removed in the driver.
Thanks
Liming
> -----Original Message-----
> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Laszlo Ersek
> Sent: Monday, August 6, 2018 9:12 PM
> To: Zhang, Shenglei <shenglei.zhang@intel.com>; edk2-devel@lists.01.org
> Cc: Dong, Eric <eric.dong@intel.com>; Zeng, Star <star.zeng@intel.com>
> Subject: Re: [edk2] [PATCH] MdeModulePkg: Remove dead code in .c and .h files
>
> On 08/06/18 09:49, shenglei wrote:
> > Some dead code has been removed in .c and .h files.
> > https://bugzilla.tianocore.org/show_bug.cgi?id=1062
> >
> > Cc: Star Zeng <star.zeng@intel.com>
> > Cc: Eric Dong <eric.dong@intel.com>
> > Contributed-under: TianoCore Contribution Agreement 1.1
> > Signed-off-by: shenglei <shenglei.zhang@intel.com>
> > ---
> > .../Application/CapsuleApp/CapsuleDump.c | 31 ---
> > MdeModulePkg/Application/UiApp/FrontPage.c | 40 ---
> > MdeModulePkg/Application/UiApp/Ui.h | 30 --
> > .../Bus/Ata/AtaAtapiPassThru/AhciMode.c | 104 -------
> > .../Bus/Ata/AtaAtapiPassThru/IdeMode.c | 257 ------------------
> > .../Bus/Isa/Ps2KeyboardDxe/Ps2KbdCtrller.c | 26 --
> > .../Bus/Isa/Ps2KeyboardDxe/Ps2Keyboard.h | 12 -
> > MdeModulePkg/Bus/Pci/EhciDxe/EhciDebug.c | 27 --
> > MdeModulePkg/Bus/Pci/EhciDxe/EhciDebug.h | 11 -
> > MdeModulePkg/Bus/Pci/EhciDxe/EhciReg.c | 44 ---
> > .../Bus/Pci/NvmExpressDxe/NvmExpressHci.c | 110 --------
> > .../Bus/Pci/PciBusDxe/PciDeviceSupport.c | 80 ------
> > .../Bus/Pci/PciBusDxe/PciDeviceSupport.h | 17 --
> > MdeModulePkg/Bus/Pci/PciBusDxe/PciIo.c | 41 ---
> > MdeModulePkg/Bus/Pci/PciBusDxe/PciIo.h | 21 --
> > MdeModulePkg/Bus/Pci/SdMmcPciHcDxe/SdDevice.c | 94 -------
> > MdeModulePkg/Bus/Pci/UhciPei/DmaMem.c | 22 --
> > MdeModulePkg/Bus/Pci/UhciPei/UhcPeim.c | 125 ---------
> > MdeModulePkg/Bus/Pci/UhciPei/UhcPeim.h | 78 ------
> > MdeModulePkg/Bus/Pci/XhciDxe/XhciReg.c | 66 -----
> > MdeModulePkg/Bus/Pci/XhciDxe/XhciReg.h | 28 --
> > MdeModulePkg/Bus/Pci/XhciPei/UsbHcMem.c | 24 --
> > MdeModulePkg/Bus/Pci/XhciPei/XhcPeim.c | 22 --
> > MdeModulePkg/Bus/Pci/XhciPei/XhciReg.h | 14 -
> > .../Bus/Sd/EmmcBlockIoPei/EmmcHcMem.c | 24 --
> > MdeModulePkg/Bus/Sd/SdBlockIoPei/SdHcMem.c | 24 --
> > .../Bus/Ufs/UfsBlockIoPei/UfsBlockIoPei.c | 101 -------
> > MdeModulePkg/Bus/Ufs/UfsBlockIoPei/UfsHcMem.c | 24 --
> > MdeModulePkg/Bus/Ufs/UfsBlockIoPei/UfsHci.c | 180 ------------
> > .../Bus/Ufs/UfsPassThruDxe/UfsPassThruHci.c | 49 ----
> > MdeModulePkg/Bus/Usb/UsbBotPei/PeiUsbLib.c | 190 -------------
> > MdeModulePkg/Bus/Usb/UsbBotPei/PeiUsbLib.h | 98 -------
> > MdeModulePkg/Bus/Usb/UsbBusDxe/UsbHub.c | 68 -----
> > MdeModulePkg/Bus/Usb/UsbBusDxe/UsbUtility.c | 146 ----------
> > MdeModulePkg/Bus/Usb/UsbBusDxe/UsbUtility.h | 114 --------
> > MdeModulePkg/Bus/Usb/UsbBusPei/HubPeim.c | 39 ---
> > MdeModulePkg/Bus/Usb/UsbBusPei/HubPeim.h | 18 --
> > MdeModulePkg/Bus/Usb/UsbBusPei/PeiUsbLib.c | 77 ------
> > MdeModulePkg/Bus/Usb/UsbBusPei/PeiUsbLib.h | 35 ---
> > MdeModulePkg/Core/Dxe/DxeMain.h | 13 -
> > MdeModulePkg/Core/Dxe/DxeMain/DxeMain.c | 23 --
> > MdeModulePkg/Core/Dxe/Mem/HeapGuard.c | 78 ------
> > MdeModulePkg/Core/PiSmmCore/HeapGuard.c | 166 -----------
> > .../Core/PiSmmCore/MemoryAttributesTable.c | 131 ---------
> > MdeModulePkg/Core/PiSmmCore/Page.c | 121 ---------
> > .../Universal/Console/TerminalDxe/Terminal.h | 12 -
> > .../Console/TerminalDxe/TerminalConIn.c | 25 --
> > .../Universal/HiiDatabaseDxe/ConfigRouting.c | 47 ----
> > .../Universal/Network/IScsiDxe/IScsiProto.c | 31 ---
> > .../Universal/Network/Ip4Dxe/Ip4Config2Impl.c | 16 --
> > .../Universal/Network/Tcp4Dxe/SockImpl.c | 35 ---
> > .../Universal/Network/Tcp4Dxe/SockInterface.c | 41 ---
> > .../Universal/Network/Tcp4Dxe/Socket.h | 32 ---
> > .../Universal/Network/Tcp4Dxe/Tcp4Option.c | 28 --
> > .../Universal/Network/Tcp4Dxe/Tcp4Option.h | 15 -
> > .../Universal/SetupBrowserDxe/IfrParse.c | 33 ---
> > 56 files changed, 3358 deletions(-)
>
> Please split this patch up to a series so that *at the least* each
> module is covered by a separate patch. For example,
>
> 1 MdeModulePkg/Application/CapsuleApp
> 2 MdeModulePkg/Application/UiApp
> 3 MdeModulePkg/Bus/Ata/AtaAtapiPassThru
> 4 MdeModulePkg/Bus/Isa/Ps2KeyboardDxe
> 5 MdeModulePkg/Bus/Pci/EhciDxe
> 6 MdeModulePkg/Bus/Pci/NvmExpressDxe
> 7 MdeModulePkg/Bus/Pci/PciBusDxe
> 8 MdeModulePkg/Bus/Pci/SdMmcPciHcDxe
> 9 MdeModulePkg/Bus/Pci/UhciPei
> 10 MdeModulePkg/Bus/Pci/XhciDxe
> 11 MdeModulePkg/Bus/Pci/XhciPei
> 12 MdeModulePkg/Bus/Sd/EmmcBlockIoPei
> 13 MdeModulePkg/Bus/Sd/SdBlockIoPei
> 14 MdeModulePkg/Bus/Ufs/UfsBlockIoPei
> 15 MdeModulePkg/Bus/Ufs/UfsPassThruDxe
> 16 MdeModulePkg/Bus/Usb/UsbBotPei
> 17 MdeModulePkg/Bus/Usb/UsbBusDxe
> 18 MdeModulePkg/Bus/Usb/UsbBusPei
> 19 MdeModulePkg/Core/Dxe
> 20 MdeModulePkg/Core/PiSmmCore
> 21 MdeModulePkg/Universal/Console/TerminalDxe
> 22 MdeModulePkg/Universal/HiiDatabaseDxe
> 23 MdeModulePkg/Universal/Network/IScsiDxe
> 24 MdeModulePkg/Universal/Network/Ip4Dxe
> 25 MdeModulePkg/Universal/Network/Tcp4Dxe
> 26 MdeModulePkg/Universal/SetupBrowserDxe
>
> Removing 3358 lines, under a blanket "dead code" comment, across 26
> drivers, is terribly bad practice, in my opinion. It's unreviewable, and
> also unbisectable if something goes wrong.
>
> The bug report <https://bugzilla.tianocore.org/show_bug.cgi?id=1062> states,
>
> Uefi-aware compiler found many modules have dead code and redundant
> definitions in the MdeModulePkg. Please see the detail info in the
> attachment log. We need to clean them.
>
> Because the module number is big, I report them all together by
> package in this tracker and don't by modules separately.
>
> Please be aware that there might be false positives in the log. The
> Uefi-aware compiler currently only analyze the C code and has not
> supported the assemble code yet. So, if a function is only invoked
> by assemble code, the Uefi-aware compiler might miss it and report
> it as dead code. Please verify them carefully if the module have
> assemble code.
>
> The bug report itself states that there might be false positives in the
> log and that at least some cases have to be evaluated carefully. It's
> exactly that evaluation that should be captured in each commit message.
> The fact that the module number is big is *exactly* the reason why the
> patch series should be fine-grained.
>
> Many of these modules are consumed by most platforms in existence. If a
> platform owner would like to take a look at a small subset of the
> modules being modified here, they now have to dig around in a 3+ KLOC
> patch, and figure it out for themselves *why* some code is called "dead".
>
> Star, Eric, what are your takes on this? Do you agree with my request
> above, or do you prefer the patch in its current form?
>
> Thanks
> Laszlo
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel
next prev parent reply other threads:[~2018-08-06 14:55 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-08-06 7:49 [PATCH] MdeModulePkg: Remove dead code in .c and .h files shenglei
2018-08-06 13:11 ` Laszlo Ersek
2018-08-06 14:54 ` Gao, Liming [this message]
2018-08-06 15:37 ` Laszlo Ersek
2018-08-06 15:58 ` Ard Biesheuvel
2018-08-06 17:36 ` Kinney, Michael D
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-list 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=4A89E2EF3DFEDB4C8BFDE51014F606A14E2C6745@SHSMSX104.ccr.corp.intel.com \
--to=devel@edk2.groups.io \
/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