Dan McDonald wrote:
> Okay!
> 
> I've spun nightlies now and will be running IKE-STC on 'em soon, but here is
> an improved webrev with a new bug:
> 
>       http://cr.opensolaris.org/~danmcd/6777776/

I'm not very happy about this type of code:
1049                 ((ipsec_in_t *)lpkt->b_rptr)->ipsec_in_stackid =
1050                     ahstack->ipsecah_netstack->netstack_stackid;

It should be cheap to always set the stackid when the larval pkt is added.

> and the new bug is:
> 
>       6779183 AH and ESP taskq handlers have to remember the netstack ID.
> 
> For now, I stuck with the existing *_kcf_callback() strategy of tagging the
> packet with the netstack ID, followed by a followup check and refhold.  I
> didn't perform a refhold prior to the asynchrony because I figured the
> original IP Instance putback didn't do a refhold across the asynchrony of
> crypto for a reason.

The reason for that is that it is hard to avoid refcnt leaks, and the 
question whether the kcf callback can take a long time - so long it 
would hold up cleaning up the netstack_t. But perhaps that isn't an 
issue. If you know that all kcf calls always results in a callback then 
you can hold a ref.

> I know there's serious rewhacking of the IP datapath occurring, so it's
> possible some of these sources of double-locking that 6777776 exposes will
> disappear, but I'd like folks to take a look at the here-and-now fix.

FWIW your inbound_task() changes are not necessary in the new datapaths, 
since they need to restore all the ip receive attributes, hence the code 
already verifies the netstack/ip_stack_t and the ill_t. Same thing 
applies to the sadb_clear_buf_pkt() changes.

    Erik


_______________________________________________
networking-discuss mailing list
[email protected]

Reply via email to