search for: radix_tree_node

Displaying 20 results from an estimated 55 matches for "radix_tree_node".

2017 Aug 03
0
[PATCH v13 1/5] Introduce xbitmap
...lete(struct radix_tree_root *, struct radix_tree_iter *iter, void __rcu **slot); void *radix_tree_delete_item(struct radix_tree_root *, unsigned long, void *); void *radix_tree_delete(struct radix_tree_root *, unsigned long); +bool __radix_tree_delete(struct radix_tree_root *root, + struct radix_tree_node *node, void __rcu **slot); void radix_tree_clear_tags(struct radix_tree_root *, struct radix_tree_node *, void __rcu **slot); unsigned int radix_tree_gang_lookup(const struct radix_tree_root *, diff --git a/include/linux/xbitmap.h b/include/linux/xbitmap.h new file mode 100644 index 000000...
2017 Nov 03
0
[PATCH v17 1/6] lib/xbitmap: Introduce xbitmap
...+309,8 @@ void radix_tree_iter_replace(struct radix_tree_root *, const struct radix_tree_iter *, void __rcu **slot, void *entry); void radix_tree_replace_slot(struct radix_tree_root *, void __rcu **slot, void *entry); +bool __radix_tree_delete(struct radix_tree_root *root, + struct radix_tree_node *node, void __rcu **slot); void __radix_tree_delete_node(struct radix_tree_root *, struct radix_tree_node *, radix_tree_update_node_t update_node, diff --git a/include/linux/xbitmap.h b/include/linux/xbitmap.h new file mode 100644 index 0000000..00b59c3 --- /dev/null +++ b/incl...
2017 Nov 03
1
[PATCH v17 1/6] lib/xbitmap: Introduce xbitmap
...ror failing to check result of xb_preload() will lead to preemption kept disabled unexpectedly. > +int xb_set_bit(struct xb *xb, unsigned long bit) > +{ > + int err; > + unsigned long index = bit / IDA_BITMAP_BITS; > + struct radix_tree_root *root = &xb->xbrt; > + struct radix_tree_node *node; > + void **slot; > + struct ida_bitmap *bitmap; > + unsigned long ebit; > + > + bit %= IDA_BITMAP_BITS; > + ebit = bit + 2; > + > + err = __radix_tree_create(root, index, 0, &node, &slot); > + if (err) > + return err; > + bitmap = rcu_dereference_raw...
2017 Nov 03
1
[PATCH v17 1/6] lib/xbitmap: Introduce xbitmap
...ror failing to check result of xb_preload() will lead to preemption kept disabled unexpectedly. > +int xb_set_bit(struct xb *xb, unsigned long bit) > +{ > + int err; > + unsigned long index = bit / IDA_BITMAP_BITS; > + struct radix_tree_root *root = &xb->xbrt; > + struct radix_tree_node *node; > + void **slot; > + struct ida_bitmap *bitmap; > + unsigned long ebit; > + > + bit %= IDA_BITMAP_BITS; > + ebit = bit + 2; > + > + err = __radix_tree_create(root, index, 0, &node, &slot); > + if (err) > + return err; > + bitmap = rcu_dereference_raw...
2017 Dec 15
2
[PATCH v19 1/7] xbitmap: Introduce xbitmap
...13 * 14 * Returns: 0 on success. %-EAGAIN indicates that @bit was not set. 15 */ 16 int xb_set_bit(struct xb *xb, unsigned long bit) 17 { 18 int err; 19 unsigned long index = bit / IDA_BITMAP_BITS; 20 struct radix_tree_root *root = &xb->xbrt; 21 struct radix_tree_node *node; 22 void **slot; 23 struct ida_bitmap *bitmap; 24 unsigned long ebit; 25 26 bit %= IDA_BITMAP_BITS; 27 ebit = bit + 2; 28 > 29 err = __radix_tree_create(root, index, 0, &node, &slot); 30 if (err) 31 return err; 32 bitmap = rcu_d...
2017 Dec 15
2
[PATCH v19 1/7] xbitmap: Introduce xbitmap
...13 * 14 * Returns: 0 on success. %-EAGAIN indicates that @bit was not set. 15 */ 16 int xb_set_bit(struct xb *xb, unsigned long bit) 17 { 18 int err; 19 unsigned long index = bit / IDA_BITMAP_BITS; 20 struct radix_tree_root *root = &xb->xbrt; 21 struct radix_tree_node *node; 22 void **slot; 23 struct ida_bitmap *bitmap; 24 unsigned long ebit; 25 26 bit %= IDA_BITMAP_BITS; 27 ebit = bit + 2; 28 > 29 err = __radix_tree_create(root, index, 0, &node, &slot); 30 if (err) 31 return err; 32 bitmap = rcu_d...
2017 Dec 19
0
[PATCH v20 1/7] xbitmap: Introduce xbitmap
..._iter_delete(struct radix_tree_root *, struct radix_tree_iter *iter, void __rcu **slot); void *radix_tree_delete_item(struct radix_tree_root *, unsigned long, void *); void *radix_tree_delete(struct radix_tree_root *, unsigned long); +bool __radix_tree_delete(struct radix_tree_root *r, struct radix_tree_node *n, + void __rcu **slot); void radix_tree_clear_tags(struct radix_tree_root *, struct radix_tree_node *, void __rcu **slot); unsigned int radix_tree_gang_lookup(const struct radix_tree_root *, diff --git a/include/linux/xbitmap.h b/include/linux/xbitmap.h new file mode 100644 index 0000...
2017 Dec 12
0
[PATCH v19 1/7] xbitmap: Introduce xbitmap
..._iter_delete(struct radix_tree_root *, struct radix_tree_iter *iter, void __rcu **slot); void *radix_tree_delete_item(struct radix_tree_root *, unsigned long, void *); void *radix_tree_delete(struct radix_tree_root *, unsigned long); +bool __radix_tree_delete(struct radix_tree_root *r, struct radix_tree_node *n, + void **slot); void radix_tree_clear_tags(struct radix_tree_root *, struct radix_tree_node *, void __rcu **slot); unsigned int radix_tree_gang_lookup(const struct radix_tree_root *, diff --git a/include/linux/xbitmap.h b/include/linux/xbitmap.h new file mode 100644 index 0000000..e...
2017 Nov 03
0
[PATCH v17 2/6] radix tree test suite: add tests for xbitmap
...x/slab.h> +#include <linux/kernel.h> +#include "../../../include/linux/xbitmap.h" + +static DEFINE_XB(xb1); + +int xb_set_bit(struct xb *xb, unsigned long bit) +{ + int err; + unsigned long index = bit / IDA_BITMAP_BITS; + struct radix_tree_root *root = &xb->xbrt; + struct radix_tree_node *node; + void **slot; + struct ida_bitmap *bitmap; + unsigned long ebit; + + bit %= IDA_BITMAP_BITS; + ebit = bit + 2; + + err = __radix_tree_create(root, index, 0, &node, &slot); + if (err) + return err; + bitmap = rcu_dereference_raw(*slot); + if (radix_tree_exception(bitmap)) { + unsig...
2017 Sep 11
1
[PATCH v15 2/5] lib/xbitmap: add xb_find_next_bit() and xb_zero()
...YMBOL(xb_zero); Um. This is not exactly going to be quick if you're clearing a range of bits. I think it needs to be more along the lines of this: void xb_clear(struct xb *xb, unsigned long start, unsigned long end) { struct radix_tree_root *root = &xb->xbrt; struct radix_tree_node *node; void **slot; struct ida_bitmap *bitmap; for (; end < start; start = (start | (IDA_BITMAP_BITS - 1)) + 1) { unsigned long index = start / IDA_BITMAP_BITS; unsigned long bit = start % IDA_BITMAP_BITS; bitmap =...
2017 Sep 11
1
[PATCH v15 2/5] lib/xbitmap: add xb_find_next_bit() and xb_zero()
...YMBOL(xb_zero); Um. This is not exactly going to be quick if you're clearing a range of bits. I think it needs to be more along the lines of this: void xb_clear(struct xb *xb, unsigned long start, unsigned long end) { struct radix_tree_root *root = &xb->xbrt; struct radix_tree_node *node; void **slot; struct ida_bitmap *bitmap; for (; end < start; start = (start | (IDA_BITMAP_BITS - 1)) + 1) { unsigned long index = start / IDA_BITMAP_BITS; unsigned long bit = start % IDA_BITMAP_BITS; bitmap =...
2017 Dec 12
0
[PATCH v19 2/7] xbitmap: potential improvement
...ve xb_fill() and xb_zero() from xbitmap.h since they are not implemented; - xb_test_bit: changed "ebit > BITS_PER_LONG" to "ebit >= BITS_PER_LONG", because bit 64 beyonds the "unsigned long" exceptional entry (0 to 63); - xb_set_bit: delete the new inserted radix_tree_node when failing to get the per cpu ida bitmap, this avoids the kind of memory leak of the unused radix tree node left in the tree. - xb_clear_bit: change it to be a void function, since the original implementation reurns nothing than a 0. - remove the comment above "#define XB_INDEX_BITS&...
2017 Nov 03
12
[PATCH v17 0/6] Virtio-balloon Enhancement
This patch series enhances the existing virtio-balloon with the following new features: 1) fast ballooning: transfer ballooned pages between the guest and host in chunks using sgs, instead of one array each time; and 2) free page block reporting: a new virtqueue to report guest free pages to the host. The second feature can be used to accelerate live migration of VMs. Here are some details: Live
2017 Nov 03
12
[PATCH v17 0/6] Virtio-balloon Enhancement
This patch series enhances the existing virtio-balloon with the following new features: 1) fast ballooning: transfer ballooned pages between the guest and host in chunks using sgs, instead of one array each time; and 2) free page block reporting: a new virtqueue to report guest free pages to the host. The second feature can be used to accelerate live migration of VMs. Here are some details: Live
2017 Sep 11
1
[PATCH v15 1/5] lib/xbitmap: Introduce xbitmap
...ndex 898e879..ee72e2c 100644 > --- a/lib/radix-tree.c > +++ b/lib/radix-tree.c > @@ -496,6 +496,7 @@ static int __radix_tree_preload(gfp_t gfp_mask, unsigned nr) > out: > return ret; > } > +EXPORT_SYMBOL(__radix_tree_preload); > > /* > * Load up this CPU's radix_tree_node buffer with sufficient objects to You exported this to modules for some reason. Why? > @@ -2003,6 +2018,7 @@ static bool __radix_tree_delete(struct radix_tree_root *root, > replace_slot(slot, NULL, node, -1, exceptional); > return node && delete_node(root, node, NULL, NULL);...
2017 Sep 11
1
[PATCH v15 1/5] lib/xbitmap: Introduce xbitmap
...ndex 898e879..ee72e2c 100644 > --- a/lib/radix-tree.c > +++ b/lib/radix-tree.c > @@ -496,6 +496,7 @@ static int __radix_tree_preload(gfp_t gfp_mask, unsigned nr) > out: > return ret; > } > +EXPORT_SYMBOL(__radix_tree_preload); > > /* > * Load up this CPU's radix_tree_node buffer with sufficient objects to You exported this to modules for some reason. Why? > @@ -2003,6 +2018,7 @@ static bool __radix_tree_delete(struct radix_tree_root *root, > replace_slot(slot, NULL, node, -1, exceptional); > return node && delete_node(root, node, NULL, NULL);...
2017 Dec 12
21
[PATCH v19 0/7] Virtio-balloon Enhancement
This patch series enhances the existing virtio-balloon with the following new features: 1) fast ballooning: transfer ballooned pages between the guest and host in chunks using sgs, instead of one array each time; and 2) free page block reporting: a new virtqueue to report guest free pages to the host. The second feature can be used to accelerate live migration of VMs. Here are some details: Live
2017 Dec 12
21
[PATCH v19 0/7] Virtio-balloon Enhancement
This patch series enhances the existing virtio-balloon with the following new features: 1) fast ballooning: transfer ballooned pages between the guest and host in chunks using sgs, instead of one array each time; and 2) free page block reporting: a new virtqueue to report guest free pages to the host. The second feature can be used to accelerate live migration of VMs. Here are some details: Live
2011 Sep 01
1
No buffer space available - loses network connectivity
...0.74K 67718 5 270872K ext3_inode_cache 143665 143363 99% 0.06K 2435 59 9740K size-64 99540 99407 99% 0.25K 6636 15 26544K size-256 96450 96447 99% 0.12K 3215 30 12860K size-128 60858 60858 100% 0.52K 8694 7 34776K radix_tree_node 12420 11088 89% 0.16K 540 23 2160K vm_area_struct 5895 4185 70% 0.25K 393 15 1572K filp 4816 3355 69% 0.03K 43 112 172K size-32 2904 2810 96% 0.09K 66 44 264K sysfs_dir_cache 2058 1937 94% 0.58K 343...
2007 Feb 15
2
Re: [Linux-HA] OCFS2 - Memory hog?
...acpi_parse 0 0 28 127 1 acpi_state 0 0 48 78 1 delayacct_cache 183 390 48 78 1 taskstats_cache 9 32 236 16 1 proc_inode_cache 49 170 372 10 1 sigqueue 96 135 144 27 1 radix_tree_node 16046 16786 276 14 1 bdev_cache 56 56 512 7 1 sysfs_dir_cache 4831 4876 40 92 1 mnt_cache 30 60 128 30 1 inode_cache 1041 1276 356 11 1 dentry_cache 11588 13688 132 29 1 filp...