All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3] lib/idr.c rewrite, percpu ida/tag allocator
@ 2013-07-06  5:08 Kent Overstreet
  2013-07-06  5:08 ` [PATCH 03/10] idr: Rewrite ida Kent Overstreet
                   ` (8 more replies)
  0 siblings, 9 replies; 19+ messages in thread
From: Kent Overstreet @ 2013-07-06  5:08 UTC (permalink / raw)
  To: akpm, linux-kernel; +Cc: tj, sfr, andi, oleg, mingo, nab, axboe

Previous posting: http://thread.gmane.org/gmane.linux.kernel/1511216

The only real change since the last version is that I've reworked the
new ida implementation to not use one giant allocation - it's still
logically one big arary, but it's implemented as an array of arrays.

With that, it scales up to INT_MAX allocated ids just fine. Benchmarks
are included in that patch.

Patch series is available in my git repo:
git://evilpiepirate.org/~kent/linux-bcache.git idr

Andrew, want to pick this up for 3.12?


^ permalink raw reply	[flat|nested] 19+ messages in thread
* IDA/IDR rewrite, percpu ida
@ 2013-08-07 17:34 Kent Overstreet
  2013-08-07 17:46 ` [PATCH 05/10] idr: Kill old deprecated idr interfaces Kent Overstreet
  0 siblings, 1 reply; 19+ messages in thread
From: Kent Overstreet @ 2013-08-07 17:34 UTC (permalink / raw)
  To: akpm, linux-kernel

Andrew - this should be pretty much identical to the patch series I
mailed out during last merge window, except rebased onto 3.11-rc4 and
retested.

I think the series should be more or less ready to go, and it'd be
really nice to get at least the percpu bits in - think you can have a
look and pick it up if it meets your standards?

Patch series is also available in git -
git://evilpiepirate.org/~kent/linux-bcache.git idr


^ permalink raw reply	[flat|nested] 19+ messages in thread
* [PATCH v2] lib/idr.c rewrite, percpu ida/tag allocator
@ 2013-06-19  0:02 Kent Overstreet
  2013-06-19  0:02 ` [PATCH 05/10] idr: Kill old deprecated idr interfaces Kent Overstreet
  0 siblings, 1 reply; 19+ messages in thread
From: Kent Overstreet @ 2013-06-19  0:02 UTC (permalink / raw)
  To: akpm, tj, axboe, nab, bcrl, linux-kernel

This is the second iteration of patches 1-4 - there's only been a few
trivial bugfixes for those.

The rest is the idr rewrite - I reimplemented it on top of the new ida
implementation and the existing radix tree implementation.

Patch series is available in my git repo:
git://evilpiepirate.org/~kent/linux-bcache.git idr

 arch/powerpc/mm/icswx_pid.c                   |   36 +-
 arch/powerpc/mm/mmu_context_hash64.c          |   28 +-
 block/blk-core.c                              |    4 +-
 block/blk-sysfs.c                             |    2 +-
 block/bsg.c                                   |    2 +-
 block/genhd.c                                 |    2 +-
 drivers/atm/nicstar.c                         |    4 +-
 drivers/base/platform.c                       |    6 +-
 drivers/base/soc.c                            |   18 +-
 drivers/block/drbd/drbd_main.c                |    6 +-
 drivers/block/drbd/drbd_nl.c                  |    2 +-
 drivers/block/loop.c                          |    4 +-
 drivers/block/mtip32xx/mtip32xx.c             |   24 +-
 drivers/block/nvme-core.c                     |   33 +-
 drivers/block/rsxx/core.c                     |   21 +-
 drivers/block/virtio_blk.c                    |    6 +-
 drivers/dca/dca-sysfs.c                       |   18 +-
 drivers/dma/dmaengine.c                       |    2 +-
 drivers/firewire/core-cdev.c                  |    5 +-
 drivers/firewire/core-device.c                |    2 +-
 drivers/gpio/gpiolib.c                        |    2 +-
 drivers/gpu/drm/drm_context.c                 |    2 +-
 drivers/gpu/drm/drm_crtc.c                    |    2 +-
 drivers/gpu/drm/drm_gem.c                     |    8 +-
 drivers/gpu/drm/drm_stub.c                    |    2 +-
 drivers/gpu/drm/exynos/exynos_drm_ipp.c       |    2 +-
 drivers/gpu/drm/i915/i915_gem_context.c       |    2 +-
 drivers/gpu/drm/qxl/qxl_cmd.c                 |    4 +-
 drivers/gpu/drm/qxl/qxl_drv.h                 |    1 -
 drivers/gpu/drm/qxl/qxl_kms.c                 |    1 -
 drivers/gpu/drm/qxl/qxl_release.c             |   19 +-
 drivers/gpu/drm/sis/sis_mm.c                  |    2 +-
 drivers/gpu/drm/via/via_mm.c                  |    2 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c |   31 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_resource.c      |    4 +-
 drivers/hwmon/hwmon.c                         |    6 +-
 drivers/hwmon/ibmaem.c                        |   10 +-
 drivers/i2c/i2c-core.c                        |    4 +-
 drivers/iio/industrialio-core.c               |    4 +-
 drivers/iio/industrialio-trigger.c            |    6 +-
 drivers/infiniband/core/cm.c                  |    7 +-
 drivers/infiniband/core/cma.c                 |    2 +-
 drivers/infiniband/core/sa_query.c            |    4 +-
 drivers/infiniband/core/ucm.c                 |    2 +-
 drivers/infiniband/core/ucma.c                |    4 +-
 drivers/infiniband/core/uverbs_cmd.c          |    4 +-
 drivers/infiniband/hw/amso1100/c2.h           |    1 -
 drivers/infiniband/hw/amso1100/c2_qp.c        |   20 +-
 drivers/infiniband/hw/cxgb3/iwch.h            |    4 +-
 drivers/infiniband/hw/cxgb4/iw_cxgb4.h        |    4 +-
 drivers/infiniband/hw/ehca/ehca_cq.c          |    4 +-
 drivers/infiniband/hw/ehca/ehca_qp.c          |    4 +-
 drivers/infiniband/hw/ipath/ipath_driver.c    |    4 +-
 drivers/infiniband/hw/mlx4/cm.c               |    2 +-
 drivers/infiniband/hw/ocrdma/ocrdma_main.c    |    2 +-
 drivers/infiniband/hw/qib/qib_init.c          |    4 +-
 drivers/input/input.c                         |    6 +-
 drivers/iommu/iommu.c                         |   18 +-
 drivers/ipack/ipack.c                         |    4 +-
 drivers/md/dm.c                               |   22 +-
 drivers/memstick/core/memstick.c              |   17 +-
 drivers/memstick/core/mspro_block.c           |    2 +-
 drivers/mfd/rtsx_pcr.c                        |   13 +-
 drivers/misc/c2port/core.c                    |   11 +-
 drivers/misc/cb710/core.c                     |   19 +-
 drivers/misc/tifm_core.c                      |   15 +-
 drivers/mmc/core/host.c                       |   13 +-
 drivers/mtd/mtdcore.c                         |    4 +-
 drivers/net/macvtap.c                         |    2 +-
 drivers/net/ppp/ppp_generic.c                 |    4 +-
 drivers/power/bq2415x_charger.c               |    2 +-
 drivers/power/bq27x00_battery.c               |    2 +-
 drivers/power/ds2782_battery.c                |    2 +-
 drivers/pps/kapi.c                            |    2 +-
 drivers/pps/pps.c                             |    4 +-
 drivers/ptp/ptp_clock.c                       |    4 +-
 drivers/remoteproc/remoteproc_core.c          |    8 +-
 drivers/rpmsg/virtio_rpmsg_bus.c              |    4 +-
 drivers/rtc/class.c                           |    6 +-
 drivers/scsi/bfa/bfad_im.c                    |    2 +-
 drivers/scsi/ch.c                             |   14 +-
 drivers/scsi/lpfc/lpfc_init.c                 |    2 +-
 drivers/scsi/osd/osd_uld.c                    |    9 +-
 drivers/scsi/scsi_transport_iscsi.c           |    6 +-
 drivers/scsi/sd.c                             |   19 +-
 drivers/scsi/sg.c                             |    4 +-
 drivers/scsi/st.c                             |   13 +-
 drivers/staging/tidspbridge/rmgr/drv.c        |    4 +-
 drivers/staging/zcache/ramster/tcp.c          |    2 +-
 drivers/target/iscsi/iscsi_target.c           |   17 +-
 drivers/target/iscsi/iscsi_target.h           |    1 -
 drivers/target/iscsi/iscsi_target_login.c     |   12 +-
 drivers/thermal/cpu_cooling.c                 |    2 +-
 drivers/thermal/thermal_core.c                |    2 +-
 drivers/uio/uio.c                             |    2 +-
 drivers/usb/chipidea/core.c                   |    6 +-
 drivers/vfio/vfio.c                           |    2 +-
 drivers/virtio/virtio.c                       |    4 +-
 drivers/w1/slaves/w1_ds2760.c                 |    6 +-
 drivers/w1/slaves/w1_ds2780.c                 |    6 +-
 drivers/w1/slaves/w1_ds2781.c                 |    6 +-
 drivers/watchdog/watchdog_core.c              |   12 +-
 fs/devpts/inode.c                             |   24 +-
 fs/dlm/lock.c                                 |    4 +-
 fs/dlm/recover.c                              |    4 +-
 fs/namespace.c                                |   49 +-
 fs/nfs/nfs4client.c                           |    4 +-
 fs/nfs/nfs4state.c                            |   33 +-
 fs/notify/inotify/inotify_user.c              |    2 +-
 fs/ocfs2/cluster/tcp.c                        |    2 +-
 fs/proc/generic.c                             |   29 +-
 fs/super.c                                    |   37 +-
 fs/sysfs/dir.c                                |   20 +-
 include/linux/cgroup.h                        |    1 -
 include/linux/idr.h                           |  358 +++--
 include/net/sctp/sctp.h                       |    1 -
 init/main.c                                   |    1 -
 ipc/util.c                                    |    6 +-
 kernel/cgroup.c                               |   42 +-
 kernel/events/core.c                          |    2 +-
 kernel/workqueue.c                            |   17 +-
 lib/idr.c                                     | 1794 ++++++++++++-------------
 mm/memcontrol.c                               |    6 +-
 net/9p/util.c                                 |   15 +-
 net/bluetooth/hci_core.c                      |    8 +-
 net/core/net_namespace.c                      |   15 +-
 net/mac80211/tx.c                             |    2 +-
 net/nfc/core.c                                |    4 +-
 net/sctp/associola.c                          |   14 +-
 net/sctp/protocol.c                           |    1 -
 net/sctp/socket.c                             |    2 -
 131 files changed, 1371 insertions(+), 1874 deletions(-)

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

end of thread, other threads:[~2013-08-07 17:46 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-07-06  5:08 [PATCH v3] lib/idr.c rewrite, percpu ida/tag allocator Kent Overstreet
2013-07-06  5:08 ` [PATCH 03/10] idr: Rewrite ida Kent Overstreet
2013-07-06  5:08 ` [PATCH 04/10] idr: Percpu ida Kent Overstreet
2013-07-06  5:08 ` [PATCH 05/10] idr: Kill old deprecated idr interfaces Kent Overstreet
2013-07-06  5:08 ` [PATCH 06/10] idr: Rename idr_get_next() -> idr_find_next() Kent Overstreet
2013-07-06  5:08 ` [PATCH 07/10] idr: Rename idr_alloc() -> idr_alloc_range() Kent Overstreet
2013-07-06  5:26   ` Dan Williams
2013-07-06  5:08 ` [PATCH 08/10] idr: Reimplement idr on top of ida/radix trees Kent Overstreet
     [not found] ` <1373087301-23730-1-git-send-email-kmo-PEzghdH756F8UrSeD/g0lQ@public.gmane.org>
2013-07-06  5:08   ` [PATCH 09/10] idr: Remove unneeded idr locking, idr_preload() usage Kent Overstreet
2013-07-06  5:08     ` Kent Overstreet
2013-07-06  5:08 ` [PATCH 10/10] idr: Rework idr_preload() Kent Overstreet
2013-07-06  5:08   ` [Cluster-devel] " Kent Overstreet
2013-07-06 22:59 ` [PATCH v3] lib/idr.c rewrite, percpu ida/tag allocator Nicholas A. Bellinger
2013-07-07 11:48   ` Michael S. Tsirkin
2013-07-08  2:09     ` Nicholas A. Bellinger
2013-07-08  5:21       ` Michael S. Tsirkin
2013-07-08 20:16   ` Andrew Morton
  -- strict thread matches above, loose matches on Subject: below --
2013-08-07 17:34 IDA/IDR rewrite, percpu ida Kent Overstreet
2013-08-07 17:46 ` [PATCH 05/10] idr: Kill old deprecated idr interfaces Kent Overstreet
2013-06-19  0:02 [PATCH v2] lib/idr.c rewrite, percpu ida/tag allocator Kent Overstreet
2013-06-19  0:02 ` [PATCH 05/10] idr: Kill old deprecated idr interfaces Kent Overstreet

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.