Re: Fwd: CCID2 patches

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Aug 28, 2006 at 12:18:33PM +1200, Ian McDonald wrote:
> It does raise the question though is whether the dccp mailing list is
> worth keeping separate? Thoughts?

I'm registered on dccp only because netdev is too noisy =D  I personally think
DCCP should gain more momentum before entering netdev.  Also, I still need to
understand if stuff can go directly to dave or through arnaldo, especially when
arnaldo gets killed with work.

> You need a description of each patch and signed off line in each
> patch. They can't be accepted in this form. Alternatively they could
> be resubmitted.

The proper email, patch and log description was sent a while back in the DCCP
mailing list.  About resubmitting, I hate insisting.  If people drop mail, there
probably is a reason.  It's one of my stubburn principles =P.

> Please state whether the target is 2.6.18 (bug fixes only) or 2.6.19
> (enhancements)

Some are bug fixes, but I'd send it all to .19.  It's a milestone patchset:
enable DCCP to do gbit [with ccid2 at least].

> Please state any dependencies between patches.

just apply them sequentially.  Most are independent.  I specifically put them in
an order "most likeley to be accepted -> most likeley to be rejected".  If you
notice, the early patches are bug fixes.  The latest patches are stuff like
"lets add profilin support".

> In patch 01_ackvec_opt:
> -int dccp_ackvec_parse(struct sock *sk, const struct sk_buff *skb,
> +u64 dccp_ackvec_parse(struct sock *sk, u64 ackno,
>                      const u8 opt, const u8 *value, const u8 len)
> 
> This becomes a one line function. This is only used in one place that I can
> see so this should go and that code should go there... Also there is some

yea I agree.  I'll do it once I see that the first patch set starts getting
processed.

> weird shit going on as this is also defined as inline with return -1 in
> ackvec.h. This needs fixing as well.

I dunno wtf that is =D  That's some old debris that needs to get killed.

> In patch 05_ccid2_seq_alloc I don't get this code:
> If you are allocating an array of structures in effect you shouldn't
> need to set next/prev pointers as they are allocated contiguously. If

I am allocating records in a double linked list.  They will be moved around in
time, so I need the pointers to keep them in the order I wish.

> you are allocating groups of arrays, which I suspect you are, I still
> think the design is a bit ugly and wastes memory.

I agree it's ugly, but I'm not a guru.  I wouldn't know how to do it otherwise
[without spending time on it].  I maintain my own free-list of structures and
reuse them as necessary.  I don't think it wastes that much memory.  I do one
malloc for a bunch of structures.  Then I shove that pointer into a "recycle
bin" so I can free it at the end.  What would the alternative be?  One malloc
per structure?  That would probably waste more memory and CPU.

> In 06_ccid2_ssthresh you don't justify why ssthresh can be infinite to
> start off with. And if it is allowed then I don't think you should do

I think by definition you exist slow start when you hit packet loss.  I believe
this maps to an infinite sshtresh.

> this by just picking a random high number. Change it to something like
> ~0

I agree.  [The number is not random; the original choice I made was too low so I
had to repeat the digit.]

> In 07_ccid2_send_poll - changing to 1 msec poll is not nice. I now you
> said this should be dequeued. I've just added tx queuing to 2.6.19
> tree now so you can do this. Up to Dave/Arnaldo if this is OK as a
> short term solution.

I personally think CCID should call-back to DCCP, "yo dude, you can send".  What
polling frequency should I put there?  Intuitively it should be
time_when_next_ack_arrives - now.  But when is that time?  RTT/cwnd?

> In 08_ccid2_cwnd:
> I think that should be a ccid2_pr_debug not a dccp_pr_debug

agree.

> in 10_ccid2_change:
> in ccid2_change_srtt why do you do the test there because you are
> going to take twice as many instructions if you are going to alter. Is
> this to minimise sets?

yea to lower profiling information.  Many times the srtt doesn't change.  [Well
in lab environments.]

> in 11_ccid2_profile:
> in ccid2_profile_time the code there is ugly. I am guessing you are
> assuming 32 bit intel vs 64 bit intel. The world doesn't revolve
> around intel. If you need something architecture specific that should
> be put into the arch subtree not here.

I don't expect this to be merged.  Using a kprobe in the "change_X" functions
does the same.  I discovered kprobes later.  The refactoring to the change_X
methods chould be kept though.

> in ccid2_hc_tx_init why are you using 6000? What is the significant.
> Make it a constant defined somewhere.

Random number.  Again, the profiling was a hack to "see" CCID2.  It turned out
to be really useful when testing the high speed stuff
[tcp_cong_whateveritscalled].

Dude, thanks for ur time in this.  I'll address the issues I agreed on in this
mail when I see arnaldo, or anyone, playing and hopefully commiting these
patches.
-
To unsubscribe from this list: send the line "unsubscribe dccp" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel]     [IETF DCCP]     [Linux Networking]     [Git]     [Security]     [Linux Assembly]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]

  Powered by Linux