From: Tejun Heo <htejun@gmail.com>
To: Jeff Garzik <jeff@garzik.org>
Cc: linux-ide@vger.kernel.org, liml@rtr.ca, alan@lxorguk.ukuu.org.uk,
kngregertsen@norway.atmel.com, sonic.adi@gmail.com,
rmk@dyn-67.arm.linux.org.uk, alessandro.zummo@towertech.it,
domen.puncer@telargo.com, akira2.iguchi@toshiba.co.jp,
leoli@freescale.com
Subject: Re: [PATCH 5/9] libata: implement and use SHT initializers and ops inheritance
Date: Sat, 02 Feb 2008 09:06:50 +0900 [thread overview]
Message-ID: <47A3B41A.9020702@gmail.com> (raw)
In-Reply-To: <47A385E4.5000901@garzik.org>
Jeff Garzik wrote:
> Two comments:
>
> 1) Please split into SHT and ops patches (SHT first, I presume)
Sure.
> 2) It seems like inheritance would be easier and less error-prone if the
> ops were copied, rather than modifying the structures in-place. Comments?
I thought about making per-port copies on host allocation or host start.
The pros of such approach would be...
* LLD's ops table can be made const.
* LLD can modify ops table freely after the copying happens. To take
advantage of this, host allocation is probably the best place to copy
the ops tables.
Cons are...
* It changes the way a libata LLD should handle ops table. The current
usage model is based on that ops table is used directly and shared and a
separate table should be defined for different variants. I think it's
better to keep the current way and inheritance makes it easy. This
almost cancels out the second pro point.
* More overhead (doesn't really matter tho).
I don't see where modifying the ops table in-place is more difficult or
error-prone. Only LLD's own ops tables need to drop const and it's not
like ops tables are directly manipulated by any code other than the
finalization code.
Another thing is that what was needed here was static class inheritance
and the in-place finalization is run-time variant of inheritance
resolving done by OO compilers. I think it's nice to keep that familiar
semantics.
Thanks.
--
tejun
next prev parent reply other threads:[~2008-02-02 0:07 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-01-30 9:28 [PATCHSET libata-dev#upstream] clean up scsi_host_templates and ata_port_operations Tejun Heo
2008-01-30 9:28 ` [PATCH 1/9] libata: PCI device should be powered up before being accessed Tejun Heo
2008-02-01 20:44 ` Jeff Garzik
2008-02-11 19:24 ` Jeff Garzik
2008-01-30 9:28 ` [PATCH 2/9] libata: reorganize ata_port_operations Tejun Heo
2008-01-30 9:28 ` [PATCH 3/9] libata: implement and use ata_noop_irq_clear() Tejun Heo
2008-02-01 20:45 ` Jeff Garzik
2008-01-30 9:28 ` [PATCH 4/9] libata: normalize port_info, port_operations and sht tables Tejun Heo
2008-02-01 20:46 ` Jeff Garzik
2008-02-09 1:57 ` Tejun Heo
2008-02-04 14:24 ` Alan Cox
2008-02-09 6:11 ` Tejun Heo
2008-02-09 6:53 ` Tejun Heo
2008-01-30 9:28 ` [PATCH 5/9] libata: implement and use SHT initializers and ops inheritance Tejun Heo
2008-01-30 17:09 ` Mark Lord
2008-01-31 3:39 ` Tejun Heo
2008-01-31 4:04 ` Mark Lord
2008-01-31 4:12 ` Tejun Heo
2008-02-01 20:49 ` Jeff Garzik
2008-02-02 0:06 ` Tejun Heo [this message]
2008-01-30 9:29 ` [PATCH 6/9] make ata_pci_init_one() not use ops->irq_handler and pi->sht Tejun Heo
2008-01-30 9:29 ` [PATCH 7/9] libata: stop overloading port_info->private_data Tejun Heo
2008-02-04 14:26 ` Alan Cox
2008-02-09 2:07 ` Tejun Heo
2008-01-30 9:29 ` [PATCH 8/9] libata: kill port_info->sht and ->irq_handler Tejun Heo
2008-01-30 9:29 ` [PATCH 9/9] libata: make reset related methods proper port operations Tejun Heo
2008-02-01 20:52 ` Jeff Garzik
2008-01-30 9:49 ` How to verify sht-ops-conversion patch doesn't change anything Tejun Heo
2008-01-30 9:51 ` GIT tree available Tejun Heo
2008-01-31 8:29 ` [PATCHSET libata-dev#upstream] clean up scsi_host_templates and ata_port_operations Akira Iguchi
2008-02-09 1:55 ` Tejun Heo
2008-01-31 8:34 ` Akira Iguchi
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=47A3B41A.9020702@gmail.com \
--to=htejun@gmail.com \
--cc=akira2.iguchi@toshiba.co.jp \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=alessandro.zummo@towertech.it \
--cc=domen.puncer@telargo.com \
--cc=jeff@garzik.org \
--cc=kngregertsen@norway.atmel.com \
--cc=leoli@freescale.com \
--cc=liml@rtr.ca \
--cc=linux-ide@vger.kernel.org \
--cc=rmk@dyn-67.arm.linux.org.uk \
--cc=sonic.adi@gmail.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.