Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 28 Jan 2011 17:06:27 -0500
From:      John Baldwin <jhb@freebsd.org>
To:        Jeff Roberson <jroberson@jroberson.net>
Cc:        freebsd-arch@freebsd.org
Subject:   Re: ofed merge soon
Message-ID:  <201101281706.27514.jhb@freebsd.org>
In-Reply-To: <alpine.BSF.2.00.1101281050510.1412@desktop>
References:  <alpine.BSF.2.00.1101271653470.1412@desktop> <201101281009.32986.jhb@freebsd.org> <alpine.BSF.2.00.1101281050510.1412@desktop>

next in thread | previous in thread | raw e-mail | index | archive | help
On Friday, January 28, 2011 3:56:30 pm Jeff Roberson wrote:
> On Fri, 28 Jan 2011, John Baldwin wrote:
> 
> > On Thursday, January 27, 2011 9:59:01 pm Jeff Roberson wrote:
> >> Hi Folks,
> >>
> >> I am merging ofed very soon.  Here is the diff between the ofed base and
> >> head branches, which includes all of the diffs to vendor files and FreeBSD
> >> files:
> >>
> >> http://people.freebsd.org/~jeff/ofed.diff
> >
> > Did you consider changing ndp to match the code from arp to print out the link
> > layer addresses?  If you don't want to do that, should there be a constant
> > similar to ETHER_ADDR_LEN that is suitable for IB to avoid hardcoding '20' in
> > ndp?  Here is the similar code from arp (which ndp probably should adopt in
> > some fashion):
> >
> 
> You're right, I was lazy in ndp.  Thanks for keeping me honest.
> 
> >        if (sdl->sdl_alen) {
> >                if ((sdl->sdl_type == IFT_ETHER ||
> >                    sdl->sdl_type == IFT_L2VLAN ||
> >                    sdl->sdl_type == IFT_BRIDGE) &&
> >                    sdl->sdl_alen == ETHER_ADDR_LEN)
> >                        printf("%s", ether_ntoa((struct ether_addr
> > *)LLADDR(sdl)));
> >                else {
> >                        int n = sdl->sdl_nlen > 0 ? sdl->sdl_nlen + 1 : 0;
> >
> >                        printf("%s", link_ntoa(sdl) + n);
> >                }
> >        } else
> >                printf("(incomplete)");
> >
> >> The diffs are actually quite small when you eliminate ofed diffs.  I don't
> >> know why I have so many merge properties but I'll just apply this diff to
> >> current, build & test before committing rather than have svn do it.
> >> Unless someone tells me otherwise.
> >
> > Just applying the diffs is probably fine.
> >
> > Also, at some point I would probably like to rename intr_drain() or hide it in
> > some way so that only ofed uses it.  FreeBSD drivers should drain interrupt
> > handlers, not IRQs.  I realize the ofed Linux compat shims are stuck with that
> > interface, but for FreeBSD drivers I want a proper interface.
> 
> Any suggestions?  Is there a proper interface available yet?  The 
> implementation I have requires internals that are not exposed outside of 
> kern_intr.c so it has to live there.

I think it will have to live there always, yes.   Hmm, for now maybe just add
a comment to say that it is only for Linux compat currently and not a
supported interface.  When I add a different drain interface I will make sure
this function has the same semantics.

-- 
John Baldwin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201101281706.27514.jhb>