The reason the method table is pointed at in each object is to avoid having to run long chains of memory references to get the method table. If you have the ep pointer you should be able to get the method table directly, not have to fetch the ia then the hca then the method table.
And as you point out it is a *pointer* that is being duplicated (32 or 64 bits) not the method table itself. A DAT provider *could* theoretically use different method tables for different objects but I haven't seen anyone actually do that yet. On 6/9/05, Tom Duffy <[EMAIL PROTECTED]> wrote: > On Thu, 2005-06-09 at 11:47 +0200, Christoph Hellwig wrote: > > It is. B?ut I think it'll change even more later on - having a pointer > > to the method table in every object is an enormous waste of space, in > > the end the method should probably be only in a hca-level object, and > > all other objects should have public pointers to it. > > Can you please explain this a bit more? A 32 or 64 bit pointer is a > waste of space? Or are you saying that each provider should just define > a struct and have a global pointer to it? > > Thanks, > > -tduffy > > > BodyID:15801799.2.n.logpart (stored separately) > > _______________________________________________ > openib-general mailing list > [email protected] > http://openib.org/mailman/listinfo/openib-general > > To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general > > _______________________________________________ openib-general mailing list [email protected] http://openib.org/mailman/listinfo/openib-general To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general
