Re: [PATCH 2/6] sched, wait: Change timeout logic

From: Linus Torvalds
Date: Mon Sep 30 2013 - 11:48:15 EST


On Mon, Sep 30, 2013 at 8:22 AM, Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:
> Commit 4c663cf ("wait: fix false timeouts when using
> wait_event_timeout()")

Btw, unrelated to the patch itselt: you seem to use the old broken
7-character short SHA1 format.

Yes, 7 hex characters is generally still unique. But no, it won't stay
so. The birthday paradox means that you start to get collisions more
quickly than you'd think, and the original 7-character hex string
default was done early in git development, when the BK repository was
considered "big", and that one was approaching having 16-bit commit
numbers.

Oh, how naive. In the eight+ years we've used git, we've flown past
that old 16-bit limit in commit numbers (we're now around 400k
commits), and we have over 3M objects. So we already have lots of
collisions in 7 characters. Now, git is smart enough that when it
picks a short form of the SHA1, it will never pick a collision, but
since the tree keeps growing, they can happen later.

As a result, I currently strongly suggest kernel-developers do

git config --global core.abbrev 12

to set the default abbreviated SHA1 count to 12 characters, not the
old default of 7. That pushes out the collision worry to the point
where we're talking "later generations" rather than "forseeable
future".

Linus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/