All of lore.kernel.org
 help / color / mirror / Atom feed
* [GIT PULL] ext4 update for 2.6.37
@ 2010-10-28  4:52 ` Theodore Ts'o
  0 siblings, 0 replies; 49+ messages in thread
From: Theodore Ts'o @ 2010-10-28  4:52 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: linux-ext4, linux-kernel

Hi Linus,

Please pull from:

  git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4.git for_linus
or
  git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4.git upstream-merge

the merge is somewhat complex, since there's been a lot of work going on
in parallel with discard and zeroout changes, as well as the change
block_prepare_write/__block_write_begin.  The changes pass the xfstests
regression test suite, using both 1k and 4k block sizes --- both before
the upstream merge (the for_linus branch) and after doing a trial merge
with the head of your tree as of Wednesday evening (the upstream-merge
branch).

The changes this time around have two major features, which are
responsible for most of the new lines of code.  One is lazy inode table
initialization, which allows ext4 file systems to be mkfs'ed very
quickly.  The second is changing the I/O submission path so that it uses
the block I/O layer directly.  This makes blktraces much smaller, and
makes ext4 far more scalable.  On the boxacle "large file create"
workload, run with 48 and 192 threads on a 48-core AMD box, ext4 now has
a 3x increase in write throughput, and CPU usage has been reduced by a
factor of 3-4.  Most of this was achieved by reducing spinlock
contention on the block queue submission locks.

We also added support for run-time discard of unused blocks using the
new FITRIM ioctl (which has been run by the linux-fs mailing list as a
generic file system-independent interface).

And, of course, a lot of bug fixes and clean ups.

     		      	     	       	     - Ted

Brian King (1):
      jbd2: Fix I/O hang in jbd2_journal_release_jbd_inode

Curt Wohlgemuth (1):
      ext4: use dedicated slab caches for group_info structures

Dmitry Monakhov (1):
      ext4: optimize orphan_list handling for ext4_setattr

Eric Sandeen (10):
      ext4: stop looping in ext4_num_dirty_pages when max_pages reached
      ext4: don't bump up LONG_MAX nr_to_write by a factor of 8
      ext4: fix oops in trace_ext4_mb_release_group_pa
      ext4: don't use ext4_allocation_contexts for tracing
      ext4: queue conversion after adding to inode's completed IO list
      ext4: remove unused ext4_sb_info members
      ext4: tidy up a void argument in inode.c
      ext4: implement writeback livelock avoidance using page tagging
      ext4: update writeback_index based on last page scanned
      ext4: move ext4_mb_{get,put}_buddy_cache_lock and make them static

Kazuya Mio (1):
      ext4: fix compile error in ext4_fallocate()

Lukas Czerner (11):
      ext4: check for negative error code from sb_issue_discard
      ext4: don't hold spinlock while calling ext4_issue_discard()
      Add helper function for blkdev_issue_zeroout (sb_issue_discard)
      ext4: add support for lazy inode table initialization
      ext4: add interface to advertise ext4 features in sysfs
      ext4: use sb_issue_zeroout in setup_new_group_blocks
      ext4: use sb_issue_zeroout in ext4_ext_zeroout
      ext4: Use return value from sb_issue_discard()
      fs: Add FITRIM ioctl
      ext4: Add batched discard support for ext4
      ext4: add batched_discard into ext4 feature list

Maciej Żenczykowski (1):
      ext4: don't update sb journal_devnum when RO dev

Namhyung Kim (1):
      ext4: Check return value of sb_getblk() and friends

Nicolas Kaiser (1):
      ext4: fix unbalanced mutex unlock in error path of ext4_li_request_new

Sergey Senozhatsky (1):
      ext4: fix NULL pointer dereference in print_daily_error_info()

Theodore Ts'o (18):
      ext4: fix EOFBLOCKS_FL handling
      jbd2: Add sanity check for attempts to start handle during umount
      ext4: avoid uninitialized memory references in ext3_htree_next_block()
      ext4: use search_dirblock() in ext4_dx_find_entry()
      ext4: use KMEM_CACHE instead of kmem_cache_create
      ext4: call mpage_da_submit_io() from mpage_da_map_blocks()
      ext4: simplify ext4_writepage()
      ext4: inline ext4_writepage() into mpage_da_submit_io()
      ext4: inline walk_page_buffers() into mpage_da_submit_io
      ext4: move mpage_put_bnr_to_bhs()'s functionality to mpage_da_submit_io()
      ext4: use bio layer instead of buffer layer in mpage_da_submit_io
      ext4: fix kernel oops if the journal superblock has a non-zero j_errno
      ext4: rename {exit,init}_ext4_*() to ext4_{exit,init}_*()
      ext4: make various ext4 functions be static
      ext4: rename {ext,idx}_pblock and inline small extent functions
      ext4: move flush_completed_IO to fs/ext4/fsync.c and make it static
      ext4: rename mark_bitmap_end() to ext4_mark_bitmap_end()
      ext4,jbd2: convert tracepoints to use major/minor numbers

Toshiyuki Okajima (2):
      ext4: improve llseek error handling for overly large seek offsets
      ext4: fix potential infinite loop in ext4_da_writepages()

Wen Congyang (1):
      ext4: avoid null dereference in trace_ext4_mballoc_discard

 Documentation/filesystems/ext4.txt |   14 +
 fs/ext4/Makefile                   |    2 +-
 fs/ext4/balloc.c                   |    5 +-
 fs/ext4/block_validity.c           |    7 +-
 fs/ext4/dir.c                      |    2 +-
 fs/ext4/ext4.h                     |  110 ++++++--
 fs/ext4/ext4_extents.h             |   65 ++++-
 fs/ext4/extents.c                  |  369 ++++++++++-------------
 fs/ext4/file.c                     |   44 +++-
 fs/ext4/fsync.c                    |   83 +++++
 fs/ext4/ialloc.c                   |  136 ++++++++-
 fs/ext4/inode.c                    |  587 +++++++++++++-----------------------
 fs/ext4/mballoc.c                  |  554 ++++++++++++++++++++++------------
 fs/ext4/migrate.c                  |    2 +-
 fs/ext4/move_extent.c              |   22 +-
 fs/ext4/namei.c                    |   63 ++---
 fs/ext4/page-io.c                  |  430 ++++++++++++++++++++++++++
 fs/ext4/resize.c                   |   53 +---
 fs/ext4/super.c                    |  531 +++++++++++++++++++++++++++++++--
 fs/ext4/xattr.c                    |    4 +-
 fs/ext4/xattr.h                    |    8 +-
 fs/ioctl.c                         |   39 +++
 fs/jbd2/checkpoint.c               |   10 +
 fs/jbd2/commit.c                   |   12 +-
 fs/jbd2/journal.c                  |    4 +-
 fs/jbd2/transaction.c              |    1 +
 include/linux/blkdev.h             |    8 +
 include/linux/fs.h                 |    8 +
 include/linux/jbd2.h               |    2 +-
 include/linux/percpu_counter.h     |   10 +
 include/linux/writeback.h          |    2 +
 include/trace/events/ext4.h        |  378 ++++++++++++++---------
 include/trace/events/jbd2.h        |   78 +++--
 33 files changed, 2513 insertions(+), 1130 deletions(-)

^ permalink raw reply	[flat|nested] 49+ messages in thread
* -tip: origin tree build failure
@ 2009-12-17  9:40 Ingo Molnar
  2009-12-17 12:23 ` Ingo Molnar
  0 siblings, 1 reply; 49+ messages in thread
From: Ingo Molnar @ 2009-12-17  9:40 UTC (permalink / raw)
  To: linux-kernel, Linus Torvalds, Wu Fengguang, Andi Kleen
  Cc: Peter Zijlstra, Andrew Morton, Matt Mackall, Nick Piggin,
	Christoph Lameter, Fr??d??ric Weisbecker, Steven Rostedt,
	Thomas Gleixner

Today's -tip fails to build due to upstream commit 
1a9b5b7fe0c5dad8a635288882d36785dea742f9 ("mm: export stable page flags") 
(authored and merged yesterday) causing the following build failure on x86 
when CONFIG_PROC_PAGE_MONITOR is disabled:

 mm/built-in.o: In function `hwpoison_filter':
  (.text+0x39fbf): undefined reference to `stable_page_flags'

The bug is that the stable_page_flags() API is only available under 
CONFIG_PROC_PAGE_MONITOR, but utilized in mm/memory-failure.c unconditionally.

I've applied the patch below to -tip for now, which expresses this dependency 
in the Kconfig. (Eventually a cleaner solution would be to factor such ABI 
details out of procfs, they dont belong there.)

A technical critique: as i pointed it out in the past on lkml, this whole 
ad-hoc exporting of MM details via /proc is ill advised. It's a limiting 
interface for instrumentation (we could do so much more and could integrate it 
so much better with a similar amount of intrusion), and it also creates 
needless ABI dependencies with user-space tooling.

This should be prototyped in debugfs and sufficiently integrated with other 
instrumentation frameworks in the kernel. I made a few suggestions and we even 
wrote patches in the past to help that out:

 3383e37: tracing, page-allocator: Add a postprocessing script for page-allocator-related ftrace events
 c33b359: tracing, page-allocator: Add trace event for page traffic related to the buddy lists
 0d524fb: tracing, mm: Add trace events for anti-fragmentation falling back to other migratetypes
 b9a2817: tracing, page-allocator: Add trace events for page allocation and page freeing
 eb46710: tracing/mm: rename 'trigger' file to 'dump_range'
 1487a7a: tracing/mm: fix mapcount trace record field
 dcac8cd: tracing/mm: add page frame snapshot trace

Unfortunately nothing of that was pursued from the MM and hwpoison side and 
now this inferior version goes upstream, and as two separate ABIs straight 
away. (the /proc ABI and the memory-failure filter ABI) Not very well designed 
and not very helpful IMO, and this will come back to haunt us in the future.

We know how to do this correctly, why not embrace, utilize and expand those 
instrumentation facilities?

Also, a workflow observation - i tried to figure out the history of the bug 
but the Git timestamps show this weirdness:

 commit 1a9b5b7fe0c5dad8a635288882d36785dea742f9
 Author:     Wu Fengguang <fengguang.wu@intel.com>
 AuthorDate: Wed Dec 16 12:19:59 2009 +0100
 Commit:     Andi Kleen <ak@linux.intel.com>
 CommitDate: Wed Dec 16 12:19:59 2009 +0100

that's precisely the same author and commit date, but author and committer are 
different - how is that possible? No combination of git-am, git-rebase and git 
commit --amend can achieve this kind of timestamp.

I checked the other 'HWPOISON' commits as well that were merged yesterday - 
they have a similarly damaged history.

Thanks,

	Ingo

Signed-off-by: Ingo Molnar <mingo@elte.hu>

diff --git a/mm/Kconfig b/mm/Kconfig
index 43ea8c3..d7bd560 100644
--- a/mm/Kconfig
+++ b/mm/Kconfig
@@ -243,6 +243,7 @@ config ARCH_SUPPORTS_MEMORY_FAILURE
 config MEMORY_FAILURE
 	depends on MMU
 	depends on ARCH_SUPPORTS_MEMORY_FAILURE
+	select PROC_PAGE_MONITOR
 	bool "Enable recovery from hardware memory errors"
 	help
 	  Enables code to recover from some memory failures on systems

^ permalink raw reply related	[flat|nested] 49+ messages in thread
* -tip: origin tree build failure
@ 2009-12-17  7:50 Ingo Molnar
  2009-12-17 21:53 ` Myron Stowe
                   ` (2 more replies)
  0 siblings, 3 replies; 49+ messages in thread
From: Ingo Molnar @ 2009-12-17  7:50 UTC (permalink / raw)
  To: linux-kernel, Len Brown, Linus Torvalds; +Cc: Bjorn Helgaas, Myron Stowe

Today's -tip failed to build because commit 
9e368fa011d4e0aa050db348d69514900520e40b ("ipmi: add PNP discovery (ACPI 
namespace via PNPACPI)") from today's upstream kernel causes the following 
build failure on x86, for CONFIG_ACPI=n && CONFIG_IPMI_SI=y:

 drivers/char/ipmi/ipmi_si_intf.c:3208: error: 'ipmi_pnp_driver' undeclared (first use in this function)
 drivers/char/ipmi/ipmi_si_intf.c:3208: error: (Each undeclared identifier is reported only once
 drivers/char/ipmi/ipmi_si_intf.c:3208: error: for each function it appears in.)
 drivers/char/ipmi/ipmi_si_intf.c:3334: error: 'ipmi_pnp_driver' undeclared (first use in this function)

The reason is that the ipmi_pnp_driver depends on ACPI facilities and is only 
made available under ACPI - while the registration and unregistration is made 
dependent on CONFIG_PNP:

 #ifdef CONFIG_PNP
 	pnp_register_driver(&ipmi_pnp_driver);
 #endif

The solution is to only register this driver under ACPI. (Also, the CONFIG_PNP 
dependency is not needed because pnp_register_driver() is stubbed out in the 
!CONFIG_PNP case.)

I've applied the patch below to tip:out-of-tree for now.

Thanks,

	Ingo

Signed-off-by: Ingo Molnar <mingo@elte.hu>

diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c
index 679cd08..176f175 100644
--- a/drivers/char/ipmi/ipmi_si_intf.c
+++ b/drivers/char/ipmi/ipmi_si_intf.c
@@ -3204,7 +3204,7 @@ static __devinit int init_ipmi_si(void)
 #ifdef CONFIG_ACPI
 	spmi_find_bmc();
 #endif
-#ifdef CONFIG_PNP
+#ifdef CONFIG_ACPI
 	pnp_register_driver(&ipmi_pnp_driver);
 #endif
 
@@ -3330,7 +3330,7 @@ static __exit void cleanup_ipmi_si(void)
 #ifdef CONFIG_PCI
 	pci_unregister_driver(&ipmi_pci_driver);
 #endif
-#ifdef CONFIG_PNP
+#ifdef CONFIG_ACPI
 	pnp_unregister_driver(&ipmi_pnp_driver);
 #endif
 

^ permalink raw reply related	[flat|nested] 49+ messages in thread
* -tip: origin tree build failure
@ 2009-12-17  6:17 Ingo Molnar
  2009-12-17 10:04 ` Henrique de Moraes Holschuh
  2009-12-17 12:16 ` Ingo Molnar
  0 siblings, 2 replies; 49+ messages in thread
From: Ingo Molnar @ 2009-12-17  6:17 UTC (permalink / raw)
  To: linux-kernel, Len Brown, Linus Torvalds
  Cc: Henrique de Moraes Holschuh, Lorne Applebaum, Matthew Garrett


Today's -tip failed to build because commit 
0d204c34e85d1d63e5fdd3e3192747daf0ee7ec1 ("thinkpad-acpi: basic ALSA mixer 
support (v2)") from today's upstream kernel causes the following build failure 
on x86, for CONFIG_THINKPAD_ACPI=y && CONFIG_SOUND=m:

  drivers/built-in.o: In function `volume_alsa_notify_change':
  thinkpad_acpi.c:(.text+0x2d5c2d): undefined reference to `snd_ctl_notify'
  thinkpad_acpi.c:(.text+0x2d5c47): undefined reference to `snd_ctl_notify'

I've applied the patch below to tip:out-of-tree.

Thanks,

	Ingo

----------------->
acpi: Build CONFIG_SOUND=m build failure in CONFIG_THINKPAD_ACPI=y

Today's -tip failed to build because thinkpad_acpi.c uses sound facilities 
unconditionally, without expressing its dependency on the sound subsystem:

  drivers/built-in.o: In function `volume_alsa_notify_change':
  thinkpad_acpi.c:(.text+0x2d5c2d): undefined reference to `snd_ctl_notify'
  thinkpad_acpi.c:(.text+0x2d5c47): undefined reference to `snd_ctl_notify'

Add a Kconfig dependency on SOUND to remedy this.

Cc: Len Brown <len.brown@intel.com>
Cc: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Cc: Lorne Applebaum <lorne.applebaum@gmail.com>
Cc: Matthew Garrett <mjg@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
 drivers/platform/x86/Kconfig |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig
index f8bec62..60083e9 100644
--- a/drivers/platform/x86/Kconfig
+++ b/drivers/platform/x86/Kconfig
@@ -216,6 +216,7 @@ config THINKPAD_ACPI
 	depends on ACPI
 	depends on INPUT
 	depends on RFKILL || RFKILL = n
+	depends on SOUND
 	select BACKLIGHT_LCD_SUPPORT
 	select BACKLIGHT_CLASS_DEVICE
 	select HWMON

^ permalink raw reply related	[flat|nested] 49+ messages in thread

end of thread, other threads:[~2011-03-19 16:24 UTC | newest]

Thread overview: 49+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-10-28  4:52 [GIT PULL] ext4 update for 2.6.37 Theodore Ts'o
2010-10-28  4:52 ` Theodore Ts'o
2010-10-28  7:50 ` Markus Trippelsdorf
2010-10-28  7:56 ` -tip: origin tree build failure (was: [GIT PULL] ext4 update for 2.6.37) Ingo Molnar
2010-10-28  7:56   ` Ingo Molnar
2010-10-28 12:12   ` Theodore Tso
2010-10-28 12:12     ` Theodore Tso
2010-10-28 16:30   ` Linus Torvalds
2010-10-28 16:38     ` Ingo Molnar
2010-10-28 16:55       ` Ted Ts'o
2010-10-28 17:00       ` Linus Torvalds
2010-10-28 17:17         ` Ingo Molnar
2010-10-28 17:17           ` Ingo Molnar
2010-10-28 17:27           ` Minimum git commit abbrev length (Was Re: -tip: origin tree build failure (was: [GIT PULL] ext4 update) " Ted Ts'o
2010-10-28 18:28             ` Linus Torvalds
2010-10-28 18:54               ` Linus Torvalds
2010-10-29  0:14                 ` Minimum git commit abbrev length (Was Re: -tip: origin tree build failure Brandon Casey
2010-10-28 21:39         ` Junio C Hamano
2010-10-28 21:50           ` Linus Torvalds
2010-10-28 21:50             ` Linus Torvalds
2011-03-10 22:37           ` [PATCH] find_unique_abbrev(): honor caller-supplied "len" better Junio C Hamano
2011-03-10 23:07             ` Linus Torvalds
2011-03-11  0:40               ` Junio C Hamano
2011-03-11  1:16                 ` Linus Torvalds
2011-03-11  1:33                   ` Junio C Hamano
2011-03-11  2:21                     ` Linus Torvalds
2011-03-11  3:09                       ` Junio C Hamano
2011-03-11  3:03                     ` Junio C Hamano
2011-03-11  5:22                       ` Jeff King
2011-03-11  5:33                         ` Jeff King
2011-03-11 22:45                       ` Junio C Hamano
2011-03-13 13:30                         ` Namhyung Kim
2011-03-19  1:22                         ` Jay Soffian
2011-03-19 16:24                           ` Namhyung Kim
2010-11-01 16:34 ` ext3 patches related to uninitialized memory references Roman Borisov
  -- strict thread matches above, loose matches on Subject: below --
2009-12-17  9:40 -tip: origin tree build failure Ingo Molnar
2009-12-17 12:23 ` Ingo Molnar
2009-12-17 12:55   ` Andi Kleen
2009-12-18 11:23     ` Ingo Molnar
2009-12-18 11:45       ` Andi Kleen
2009-12-17  7:50 Ingo Molnar
2009-12-17 21:53 ` Myron Stowe
2009-12-26 12:36 ` Geert Uytterhoeven
2009-12-26 19:50 ` Len Brown
2009-12-27  0:24   ` Henrique de Moraes Holschuh
2009-12-28  8:26   ` Ingo Molnar
2009-12-17  6:17 Ingo Molnar
2009-12-17 10:04 ` Henrique de Moraes Holschuh
2009-12-17 12:16 ` Ingo Molnar

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.