From: Ingo Molnar <mingo@kernel.org>
To: Willy Tarreau <w@1wt.eu>
Cc: Felipe Contreras <felipe.contreras@gmail.com>,
Linus Torvalds <torvalds@linux-foundation.org>,
Greg KH <gregkh@linuxfoundation.org>,
Sergio Correia <lists@uece.net>,
linux-kernel@vger.kernel.org, stable@vger.kernel.org,
akpm@linux-foundation.org, alan@lxorguk.ukuu.org.uk,
linux-wireless Mailing List <linux-wireless@vger.kernel.org>,
Sujith Manoharan <c_manoha@qca.qualcomm.com>,
"ath9k-devel@lists.ath9k.org" <ath9k-devel@venema.h4ckr.net>,
"John W. Linville" <linville@tuxdriver.com>
Subject: Re: [ 00/78] 3.3.2-stable review
Date: Mon, 16 Apr 2012 08:38:40 +0200 [thread overview]
Message-ID: <20120416063838.GA23628@gmail.com> (raw)
In-Reply-To: <20120416053911.GL27728@1wt.eu>
* Willy Tarreau <w@1wt.eu> wrote:
> It's not the user's visibility, it's published code. Once code
> is published, you cannot magically fix it without emitting a
> new patch for this code and announcing so that users apply it.
> These patches are called stable releases. Users want a good
> reason to apply these patches, rebuild and reboot, and that's
> one reason we absolutely want to have the commit descriptions
> from upstream which detail the exact reason for the patch
> (even if it's a revert).
Let me also outline why reverts are important and why they are
not just 'a patch removed'.
A revert carries valuable information: we revert a broken commit
not just with the terse description that it's broken, but with
an exact description about *why* it's broken and how that
breakage relates to the original patch.
In the limited 'patch space' nothing happened: a patch was done,
then undone.
In the Git 'commit space' the picture is very different: we have
a commit that does a change with a justification and we have
*another* commit that undoes the code modification with
*another* justification.
We got richer by two justifications and the kernel got
*more stable* in the process even though no actual code
changed:
- We very likely won't repeat this mistake again, it's
documented for eternity to any developer touching this
code in the future. See Linus's arguments about 'monotonic
progress'. Git hashes force the causality of the real
physical world on us, which is *especially* useful when we
make mistakes and would like to use a digital time machine
that whitewashes our shades of grey history.
- In practice developers tend to be more careful with code that
sees an above average ration of reverts. It's a red flag - it
shows that the code, the hardware or the development process
maintaining that code is somehow non-obvious and fragile for
one reason or another.
- In most cases a change+revert also spurs further development:
the original justification is likely valid and people want to
achieve that advantage but via some other, non-broken means.
In that sense the revert is a persistent TODO entry as well,
for developers.
If the bug was just a report somewhere in a mailing list archive
on the web then it would bitrot quickly and people would not
have a way to find it and react to it in an organized way.
By making it a Git commit; the change, the fix and all the
justifications around it become a permanent part of Linux -
which is more than just 15 million lines of code ...
Thanks,
Ingo
next prev parent reply other threads:[~2012-04-16 6:38 UTC|newest]
Thread overview: 169+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-04-11 23:11 [ 00/78] 3.3.2-stable review Greg KH
2012-04-11 23:10 ` [ 01/78] x86 bpf_jit: fix a bug in emitting the 16-bit immediate operand of AND Greg KH
2012-04-11 23:10 ` [ 02/78] via-rhine: fix wait-bit inversion Greg KH
2012-04-11 23:10 ` [ 03/78] tg3: Fix 5717 serdes powerdown problem Greg KH
2012-04-11 23:10 ` [ 04/78] sky2: dont overwrite settings for PHY Quick link Greg KH
2012-04-11 23:10 ` [ 05/78] rose_dev: fix memcpy-bug in rose_set_mac_address Greg KH
2012-04-11 23:10 ` [ 06/78] net: usb: cdc_eem: fix mtu Greg KH
2012-04-11 23:10 ` [ 07/78] Fix non TBI PHY access; a bad merge undid bug fix in a previous commit Greg KH
2012-04-11 23:10 ` [ 08/78] ALSA: hda/realtek - Fix ADC assignment with a shared HP/Mic pin Greg KH
2012-04-11 23:10 ` [ 09/78] ASoC: wm8994: Update WM8994 DCS calibration Greg KH
2012-04-11 23:10 ` [ 10/78] mtd: ixp4xx: oops in ixp4xx_flash_probe Greg KH
2012-04-11 23:10 ` [ 11/78] mtd: mips: lantiq: reintroduce support for cmdline partitions Greg KH
2012-04-11 23:10 ` [ 12/78] mtd: nand: gpmi: use correct member for checking NAND_BBT_USE_FLASH Greg KH
2012-04-11 23:10 ` [ 13/78] mtd: sst25l: initialize writebufsize Greg KH
2012-04-11 23:10 ` [ 14/78] mtd: doc2001plus: " Greg KH
2012-04-11 23:10 ` [ 15/78] mtd: doc2000: " Greg KH
2012-04-11 23:10 ` [ 16/78] mtd: doc2001: " Greg KH
2012-04-11 23:10 ` [ 17/78] mtd: docg3: " Greg KH
2012-04-11 23:10 ` [ 18/78] mtd: block2mtd: " Greg KH
2012-04-11 23:10 ` [ 19/78] mtd: lart: " Greg KH
2012-04-11 23:10 ` [ 20/78] mtd: m25p80: set writebufsize Greg KH
2012-04-11 23:10 ` [ 21/78] ACPI: Do cpufreq clamping for throttling per package v2 Greg KH
2012-04-11 23:10 ` [ 22/78] PNPACPI: Fix device ref leaking in acpi_pnp_match Greg KH
2012-04-11 23:10 ` [ 23/78] ACPICA: Fix regression in FADT revision checks Greg KH
2012-04-11 23:10 ` [ 24/78] modpost: fix ALL_INIT_DATA_SECTIONS Greg KH
2012-04-11 23:10 ` [ 25/78] genirq: Adjust irq thread affinity on IRQ_SET_MASK_OK_NOCOPY return value Greg KH
2012-04-11 23:10 ` [ 26/78] tracing: Fix ftrace stack trace entries Greg KH
2012-04-11 23:10 ` [ 27/78] tracing: Fix ent_size in trace output Greg KH
2012-04-11 23:10 ` [ 28/78] m68k/mac: Add missing platform check before registering platform devices Greg KH
2012-04-11 23:10 ` [ 29/78] mac80211: fix possible tid_rx->reorder_timer use after free Greg KH
2012-04-11 23:10 ` [ 30/78] rtlwifi: rtl8192ce: rtl8192cu: rtl8192de: Fix low-gain setting when scanning Greg KH
2012-04-11 23:10 ` [ 31/78] ath9k: fix max noise floor threshold Greg KH
2012-04-14 5:36 ` Ben Hutchings
2012-04-14 6:26 ` Rajkumar Manoharan
2012-04-11 23:10 ` [ 32/78] drm: Validate requested virtual size against allocated fb size Greg KH
2012-04-11 23:10 ` [ 33/78] drm/radeon/kms: fix fans after resume Greg KH
2012-04-11 23:10 ` [ 34/78] drm/i915: no-lvds quirk on MSI DC500 Greg KH
2012-04-11 23:10 ` [ 35/78] drm/i915: treat src w & h as fixed point in sprite handling code Greg KH
2012-04-11 23:10 ` [ 36/78] drm/i915: Sanitize BIOS debugging bits from PIPECONF Greg KH
2012-04-11 23:10 ` [ 37/78] drm/i915: Add lock on drm_helper_resume_force_mode Greg KH
2012-04-11 23:10 ` [ 38/78] drm/i915: quirk away broken OpRegion VBT Greg KH
2012-04-11 23:10 ` [ 39/78] firmware_class: Rework usermodehelper check Greg KH
2012-04-11 23:10 ` [ 40/78] firmware_class: Split _request_firmware() into three functions, v2 Greg KH
2012-04-11 23:10 ` [ 41/78] firmware_class: Do not warn that system is not ready from async loads Greg KH
2012-04-11 23:11 ` [ 42/78] PM / Runtime: dont forget to wake up waitqueue on failure Greg KH
2012-04-14 5:23 ` Ben Hutchings
2012-04-11 23:11 ` [ 43/78] PM / Hibernate: Disable usermode helpers right before freezing tasks Greg KH
2012-04-11 23:11 ` [ 44/78] PM / Sleep: Move disabling of usermode helpers to the freezer Greg KH
2012-04-11 23:11 ` [ 45/78] PM / Sleep: Mitigate race between the freezer and request_firmware() Greg KH
2012-04-11 23:11 ` [ 46/78] kgdb,debug_core: pass the breakpoint struct instead of address and memory Greg KH
2012-04-11 23:11 ` [ 47/78] kgdbts: Fix kernel oops with CONFIG_DEBUG_RODATA Greg KH
2012-04-11 23:11 ` [ 48/78] kgdbts: (1 of 2) fix single step awareness to work correctly with SMP Greg KH
2012-04-11 23:11 ` [ 49/78] kgdbts: (2 " Greg KH
2012-04-11 23:11 ` [ 50/78] x86,kgdb: Fix DEBUG_RODATA limitation using text_poke() Greg KH
2012-04-11 23:11 ` [ 51/78] CIFS: Fix VFS lock usage for oplocked files Greg KH
2012-04-11 23:11 ` [ 52/78] USB: ohci-at91: fix vbus_pin_active_low handling Greg KH
2012-04-11 23:11 ` [ 53/78] ARM: at91/USB host: specify and handle properly vbus_pin_active_low Greg KH
2012-04-11 23:11 ` [ 54/78] mmc: sdio: Use empty system suspend/resume callbacks at the bus level Greg KH
2012-04-11 23:11 ` [ 55/78] mmc: sdhci-dove: Fix compile error by including module.h Greg KH
2012-04-11 23:11 ` [ 56/78] mmc: atmel-mci: correct data timeout computation Greg KH
2012-04-11 23:11 ` [ 57/78] tcm_fc: Add abort flag for gracefully handling exchange timeout Greg KH
2012-04-11 23:11 ` [ 58/78] tcm_fc: Do not free tpg structure during wq allocation failure Greg KH
2012-04-11 23:11 ` [ 59/78] sysctl: fix write access to dmesg_restrict/kptr_restrict Greg KH
2012-04-11 23:11 ` [ 60/78] regmap: prevent division by zero in rbtree_show Greg KH
2012-04-11 23:11 ` [ 61/78] modpost: Fix modpost license checking of vmlinux.o Greg KH
2012-04-11 23:11 ` [ 62/78] mfd: Fix section mismatch warning for da9052-spi Greg KH
2012-04-11 23:11 ` [ 63/78] android, lowmemorykiller: remove task handoff notifier Greg KH
2012-04-11 23:11 ` [ 64/78] TOMOYO: Fix mount flags checking order Greg KH
2012-04-11 23:11 ` [ 65/78] iwlegacy: do not nulify il->vif on reset Greg KH
2012-04-11 23:11 ` [ 66/78] Revert "x86/ioapic: Add register level checks to detect bogus io-apic entries" Greg KH
2012-04-11 23:11 ` [ 67/78] acer-wmi: No wifi rfkill on Sony machines Greg KH
2012-04-11 23:11 ` [ 68/78] Fix length of buffer copied in __nfs4_get_acl_uncached Greg KH
2012-04-11 23:11 ` [ 69/78] sched/x86: Fix overflow in cyc2ns_offset Greg KH
2012-04-11 23:11 ` [ 70/78] mfd: Clear twl6030 IRQ status register only once Greg KH
2012-04-11 23:11 ` [ 71/78] USB: Add Motorola Rokr E6 Id to the USBNet driver "zaurus" Greg KH
2012-04-11 23:11 ` [ 72/78] ioat: fix size of completion for Xen Greg KH
2012-04-11 23:11 ` [ 73/78] [media] uvcvideo: Fix race-related crash in uvc_video_clock_update() Greg KH
2012-04-11 23:11 ` [ 74/78] ASoC: ak4642: fixup: mute needs +1 step Greg KH
2012-04-11 23:11 ` [ 75/78] ASoC: tegra: fix i2s compilation when !CONFIG_DEBUG_FS Greg KH
2012-04-11 23:11 ` [ 76/78] media: dvb_frontend: regression fix: userspace ABI broken for xine Greg KH
2012-04-11 23:11 ` [ 77/78] media: dvb-core: fix DVBFE_ALGO_HW retune bug Greg KH
2012-04-11 23:11 ` [ 78/78] cred: copy_process() should clear child->replacement_session_keyring Greg KH
2012-04-11 23:59 ` [ 00/78] 3.3.2-stable review Sergio Correia
2012-04-12 0:29 ` Greg KH
2012-04-12 0:57 ` Sergio Correia
2012-04-12 1:03 ` Felipe Contreras
2012-04-12 1:13 ` Greg KH
2012-04-12 13:32 ` Felipe Contreras
2012-04-12 14:46 ` Greg KH
2012-04-12 16:49 ` Felipe Contreras
2012-04-12 17:24 ` Adrian Chadd
2012-04-12 18:43 ` Felipe Contreras
2012-04-12 18:56 ` Jonathan Nieder
2012-04-12 21:34 ` Felipe Contreras
2012-04-12 21:43 ` Willy Tarreau
2012-04-12 20:07 ` Greg KH
2012-04-12 20:52 ` Sven-Haegar Koch
2012-04-13 8:57 ` Stefan Richter
2012-04-13 10:29 ` Felipe Contreras
2012-04-13 13:42 ` Stefan Richter
2012-04-13 14:01 ` Stefan Richter
2012-04-13 22:38 ` Felipe Contreras
2012-04-13 23:05 ` Jonathan Nieder
2012-04-13 23:18 ` Felipe Contreras
2012-04-14 5:44 ` Willy Tarreau
2012-04-14 15:43 ` Felipe Contreras
2012-04-14 16:02 ` Willy Tarreau
2012-04-14 9:10 ` Stefan Richter
2012-04-14 15:52 ` Felipe Contreras
2012-04-14 18:08 ` Stefan Richter
2012-04-14 7:41 ` Stefan Richter
2012-04-14 15:29 ` Felipe Contreras
2012-04-14 15:57 ` Willy Tarreau
2012-04-14 19:33 ` Felipe Contreras
2012-04-14 19:58 ` Willy Tarreau
2012-04-14 17:55 ` Stefan Richter
2012-04-14 19:21 ` Felipe Contreras
2012-04-14 21:21 ` Stefan Richter
2012-04-14 22:09 ` Felipe Contreras
2012-04-14 22:47 ` Stefan Richter
2012-04-14 22:56 ` Felipe Contreras
2012-04-14 23:06 ` Adrian Chadd
2012-04-13 19:08 ` [ath9k-devel] " Peter Stuge
2012-04-13 22:53 ` Felipe Contreras
2012-04-14 6:01 ` Willy Tarreau
2012-04-16 16:27 ` Greg KH
2012-04-16 20:11 ` Felipe Contreras
2012-04-16 20:58 ` Greg KH
2012-04-16 21:18 ` Felipe Contreras
2012-04-16 21:27 ` Greg KH
2012-04-16 21:44 ` Felipe Contreras
2012-04-16 22:34 ` Peter Stuge
2012-04-17 5:24 ` Willy Tarreau
2012-04-16 21:50 ` Felipe Contreras
2012-04-16 21:54 ` Don deJuan
2012-04-16 22:02 ` Don deJuan
2012-04-16 21:39 ` Don deJuan
2012-04-12 18:40 ` Willy Tarreau
2012-04-12 19:05 ` Linus Torvalds
2012-04-12 21:20 ` Felipe Contreras
2012-04-12 21:34 ` Linus Torvalds
2012-04-12 21:44 ` Linus Torvalds
2012-04-12 22:02 ` [ath9k-devel] " Luis R. Rodriguez
2012-04-12 22:04 ` Felipe Contreras
2012-04-12 22:07 ` Linus Torvalds
2012-04-12 22:29 ` Felipe Contreras
2012-04-14 10:47 ` Ingo Molnar
2012-04-14 15:59 ` Felipe Contreras
2012-04-15 6:51 ` Ingo Molnar
2012-04-15 17:15 ` Felipe Contreras
2012-04-15 17:29 ` Willy Tarreau
2012-04-15 17:49 ` Linus Torvalds
2012-04-15 22:12 ` Felipe Contreras
2012-04-16 5:32 ` Ingo Molnar
2012-04-16 20:25 ` Felipe Contreras
2012-04-16 21:08 ` Arend van Spriel
2012-04-16 5:39 ` Willy Tarreau
2012-04-16 6:38 ` Ingo Molnar [this message]
2012-04-12 22:12 ` David Miller
2012-04-12 22:58 ` Felipe Contreras
2012-04-13 5:34 ` Willy Tarreau
2012-04-13 10:04 ` Felipe Contreras
2012-04-12 21:39 ` Willy Tarreau
2012-04-12 22:02 ` Jesper Juhl
2012-04-12 19:57 ` Alexander Holler
2012-04-12 20:06 ` Greg KH
2012-04-12 20:30 ` Alexander Holler
2012-04-12 22:31 ` Greg KH
2012-04-12 4:16 ` Heinz Diehl
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20120416063838.GA23628@gmail.com \
--to=mingo@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=ath9k-devel@venema.h4ckr.net \
--cc=c_manoha@qca.qualcomm.com \
--cc=felipe.contreras@gmail.com \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-wireless@vger.kernel.org \
--cc=linville@tuxdriver.com \
--cc=lists@uece.net \
--cc=stable@vger.kernel.org \
--cc=torvalds@linux-foundation.org \
--cc=w@1wt.eu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).