Displaying 20 results from an estimated 32 matches for "xb_find_next_set_bit".
2017 Dec 12
0
[PATCH v19 3/7] xbitmap: add more operations
...b_set_bit(struct xb *xb, unsigned long bit);
+int xb_preload_and_set_bit(struct xb *xb, unsigned long bit, gfp_t gfp);
bool xb_test_bit(const struct xb *xb, unsigned long bit);
-int xb_clear_bit(struct xb *xb, unsigned long bit);
+void xb_clear_bit(struct xb *xb, unsigned long bit);
+unsigned long xb_find_next_set_bit(struct xb *xb, unsigned long start,
+ unsigned long end);
+unsigned long xb_find_next_zero_bit(struct xb *xb, unsigned long start,
+ unsigned long end);
+void xb_clear_bit_range(struct xb *xb, unsigned long start, unsigned long end);
static inline bool xb_empty(const struct xb *xb)...
2017 Dec 14
0
[PATCH v19 3/7] xbitmap: add more operations
...+ 1, IDA_BITMAP_BITS - bit);
if (set)
ret = find_next_bit(bitmap->bitmap, nbits, bit);
else
ret = find_next_zero_bit(bitmap->bitmap,
nbits, bit);
if (ret < nbits)
return ret + ida_start;
>>>> +/**
>>>> + * xb_find_next_set_bit - find the next set bit in a range
>>>> + * @xb: the xbitmap to search
>>>> + * @start: the start of the range, inclusive
>>>> + * @end: the end of the range, exclusive
>>>> + *
>>>> + * Returns: the index of the found bit, or @end + 1 if...
2017 Dec 13
0
[PATCH v19 3/7] xbitmap: add more operations
...exception path after minimum version is merged.
> This series is too difficult for me to close corner cases.
That exception path is claimed to save memory, and I don't have a strong
reason to remove that part.
Matthew, could we get your feedback on this?
>
>> +/**
>> + * xb_find_next_set_bit - find the next set bit in a range
>> + * @xb: the xbitmap to search
>> + * @start: the start of the range, inclusive
>> + * @end: the end of the range, exclusive
>> + *
>> + * Returns: the index of the found bit, or @end + 1 if no such bit is found.
>> + */
>...
2017 Nov 03
0
[PATCH v17 2/6] radix tree test suite: add tests for xbitmap
...IDA_BITMAP_BITS, bit);
+ else
+ ret = find_next_zero_bit(bmap->bitmap,
+ IDA_BITMAP_BITS, bit);
+ if (ret < IDA_BITMAP_BITS)
+ return ret + index * IDA_BITMAP_BITS;
+ } else if (!bmap && !set) {
+ return start;
+ }
+ }
+
+ return ret;
+}
+
+unsigned long xb_find_next_set_bit(struct xb *xb, unsigned long start,
+ unsigned long end)
+{
+ return xb_find_next_bit(xb, start, end, 1);
+}
+
+unsigned long xb_find_next_zero_bit(struct xb *xb, unsigned long start,
+ unsigned long end)
+{
+ return xb_find_next_bit(xb, start, end, 0);
+}
+
+static void xbitmap_check_...
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
2017 Nov 03
0
[PATCH v17 1/6] lib/xbitmap: Introduce xbitmap
...ox at microsoft.com>
The eXtensible Bitmap is a sparse bitmap representation which is
efficient for set bits which tend to cluster. It supports up to
'unsigned long' worth of bits, and this commit adds the bare bones --
xb_set_bit(), xb_clear_bit(), xb_clear_bit_range(), xb_test_bit(),
xb_find_next_set_bit(), xb_find_next_zero_bit().
More possible optimizations to add in the future:
1) xb_set_bit_range: set a range of bits.
2) when searching a bit, if the bit is not found in the slot, move on to
the next slot directly.
3) add Tags to help searching.
Signed-off-by: Wei Wang <wei.w.wang at intel.c...
2017 Dec 14
0
[PATCH v19 3/7] xbitmap: add more operations
On Fri, Dec 15, 2017 at 01:29:45AM +0900, Tetsuo Handa wrote:
> > > Also, one more thing you need to check. Have you checked how long does
> > > xb_find_next_set_bit(xb, 0, ULONG_MAX) on an empty xbitmap takes?
> > > If it causes soft lockup warning, should we add cond_resched() ?
> > > If yes, you have to document that this API might sleep. If no, you
> > > have to document that the caller of this API is responsible for
> > >...
2017 Dec 19
0
[PATCH v20 0/7] Virtio-balloon Enhancement
...[0, ULONG_MAX)) will take too long time. This can be optimized in
> > the future.
> > - remove the exceptional path;
> > - remove xb_preload_and_set();
> > - reimplement xb_clear_bit_range to make its usage close to
> > bitmap_clear;
> > - rename xb_find_next_set_bit to xb_find_set, and re-implement it
> > in a style close to find_next_bit;
> > - rename xb_find_next_zero_bit to xb_find_clear, and re-implement
> > it in a stytle close to find_next_zero_bit;
> > - separate the implementation of xb_find_set and xb_find_clear for
>...
2017 Dec 19
0
[PATCH v20 0/7] Virtio-balloon Enhancement
...[0, ULONG_MAX)) will take too long time. This can be optimized in
> > the future.
> > - remove the exceptional path;
> > - remove xb_preload_and_set();
> > - reimplement xb_clear_bit_range to make its usage close to
> > bitmap_clear;
> > - rename xb_find_next_set_bit to xb_find_set, and re-implement it
> > in a style close to find_next_bit;
> > - rename xb_find_next_zero_bit to xb_find_clear, and re-implement
> > it in a stytle close to find_next_zero_bit;
> > - separate the implementation of xb_find_set and xb_find_clear for
>...
2017 Sep 30
12
[PATCH v16 0/5] 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 30
12
[PATCH v16 0/5] 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 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 29
22
[PATCH v18 00/10] 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 29
22
[PATCH v18 00/10] 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 20
2
[PATCH v20 0/7] Virtio-balloon Enhancement
...; [0, ULONG_MAX)) will take too long time. This can be optimized in
>> the future.
>> - remove the exceptional path;
>> - remove xb_preload_and_set();
>> - reimplement xb_clear_bit_range to make its usage close to
>> bitmap_clear;
>> - rename xb_find_next_set_bit to xb_find_set, and re-implement it
>> in a style close to find_next_bit;
>> - rename xb_find_next_zero_bit to xb_find_clear, and re-implement
>> it in a stytle close to find_next_zero_bit;
>> - separate the implementation of xb_find_set and xb_find_clear for
>>...
2017 Dec 20
2
[PATCH v20 0/7] Virtio-balloon Enhancement
...; [0, ULONG_MAX)) will take too long time. This can be optimized in
>> the future.
>> - remove the exceptional path;
>> - remove xb_preload_and_set();
>> - reimplement xb_clear_bit_range to make its usage close to
>> bitmap_clear;
>> - rename xb_find_next_set_bit to xb_find_set, and re-implement it
>> in a style close to find_next_bit;
>> - rename xb_find_next_zero_bit to xb_find_clear, and re-implement
>> it in a stytle close to find_next_zero_bit;
>> - separate the implementation of xb_find_set and xb_find_clear for
>>...
2017 Dec 01
1
[PATCH v18 07/10] virtio-balloon: VIRTIO_BALLOON_F_SG
...d long page_xb_start,
> + unsigned long page_xb_end)
> +{
> + unsigned long pfn_start, pfn_end;
> + uint64_t addr;
> + uint32_t len, max_len = round_down(UINT_MAX, PAGE_SIZE);
> +
> + pfn_start = page_xb_start;
> + while (pfn_start < page_xb_end) {
> + pfn_start = xb_find_next_set_bit(&vb->page_xb, pfn_start,
> + page_xb_end);
> + if (pfn_start == page_xb_end + 1)
> + break;
> + pfn_end = xb_find_next_zero_bit(&vb->page_xb,
> + pfn_start + 1,
> + page_xb_end);
> + addr = pfn_start << PAGE_SHIFT;
> + len = (pfn_end...
2017 Dec 01
1
[PATCH v18 07/10] virtio-balloon: VIRTIO_BALLOON_F_SG
...d long page_xb_start,
> + unsigned long page_xb_end)
> +{
> + unsigned long pfn_start, pfn_end;
> + uint64_t addr;
> + uint32_t len, max_len = round_down(UINT_MAX, PAGE_SIZE);
> +
> + pfn_start = page_xb_start;
> + while (pfn_start < page_xb_end) {
> + pfn_start = xb_find_next_set_bit(&vb->page_xb, pfn_start,
> + page_xb_end);
> + if (pfn_start == page_xb_end + 1)
> + break;
> + pfn_end = xb_find_next_zero_bit(&vb->page_xb,
> + pfn_start + 1,
> + page_xb_end);
> + addr = pfn_start << PAGE_SHIFT;
> + len = (pfn_end...