Displaying 18 results from an estimated 18 matches for "sparse_array_ext".
2019 Mar 20
0
[PATCH nbdkit 6/8] data, memory: Implement extents.
...nd use in source and binary forms, with or without
@@ -87,4 +87,9 @@ extern void sparse_array_zero (struct sparse_array *sa,
uint32_t count, uint64_t offset)
__attribute__((__nonnull__ (1)));
+/* Return information about allocated pages and holes. */
+extern int sparse_array_extents (struct sparse_array *sa,
+ uint32_t count, uint64_t offset,
+ struct nbdkit_extents *extents);
+
#endif /* NBDKIT_SPARSE_H */
diff --git a/common/sparse/sparse.c b/common/sparse/sparse.c
index a5ace48..66b3007 100644
--- a/common...
2019 Apr 23
0
[nbdkit PATCH 4/4] plugins: Utilize ACQUIRE_LOCK_FOR_CURRENT_SCOPE
...array_zero (sa, count, offset);
- pthread_mutex_unlock (&lock);
return 0;
}
@@ -382,12 +376,8 @@ static int
data_extents (void *handle, uint32_t count, uint64_t offset,
uint32_t flags, struct nbdkit_extents *extents)
{
- int r;
-
- pthread_mutex_lock (&lock);
- r = sparse_array_extents (sa, count, offset, extents);
- pthread_mutex_unlock (&lock);
- return r;
+ ACQUIRE_LOCK_FOR_CURRENT_SCOPE (&lock);
+ return sparse_array_extents (sa, count, offset, extents);
}
static struct nbdkit_plugin plugin = {
diff --git a/plugins/file/file.c b/plugins/file/file.c
index 27...
2019 Mar 23
2
Re: [PATCH nbdkit 6/8] data, memory: Implement extents.
On 3/20/19 5:11 PM, Richard W.M. Jones wrote:
> These plugins are both based on the same sparse array structure which
> supports a simple implementation of extents.
> ---
> +int
> +sparse_array_extents (struct sparse_array *sa,
> + uint32_t count, uint64_t offset,
> + struct nbdkit_extents *extents)
> +{
> + uint32_t n, type;
> + void *p;
> +
> + while (count > 0) {
> + p = lookup (sa, offset, false, &n, NULL);
>...
2019 Mar 28
0
[PATCH nbdkit v5 FINAL 14/19] data, memory: Implement extents.
...nd use in source and binary forms, with or without
@@ -87,4 +87,9 @@ extern void sparse_array_zero (struct sparse_array *sa,
uint32_t count, uint64_t offset)
__attribute__((__nonnull__ (1)));
+/* Return information about allocated pages and holes. */
+extern int sparse_array_extents (struct sparse_array *sa,
+ uint32_t count, uint64_t offset,
+ struct nbdkit_extents *extents);
+
#endif /* NBDKIT_SPARSE_H */
diff --git a/common/sparse/sparse.c b/common/sparse/sparse.c
index a5ace48..d5654c2 100644
--- a/common...
2019 Apr 24
0
Re: [PATCH nbdkit v5 FINAL 14/19] data, memory: Implement extents.
...9-April/msg00192.html
Thanks: Eric Blake.
---
common/sparse/sparse.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/common/sparse/sparse.c b/common/sparse/sparse.c
index b46bd31..cb44743 100644
--- a/common/sparse/sparse.c
+++ b/common/sparse/sparse.c
@@ -370,8 +370,6 @@ sparse_array_extents (struct sparse_array *sa,
while (count > 0) {
p = lookup (sa, offset, false, &n, NULL);
- if (n > count)
- n = count;
/* Work out the type of this extent. */
if (p == NULL)
@@ -388,6 +386,9 @@ sparse_array_extents (struct sparse_array *sa,
if (nbdkit...
2019 Apr 23
2
Re: [PATCH nbdkit v5 FINAL 14/19] data, memory: Implement extents.
...| 16 ++++-
> plugins/memory/memory.c | 16 ++++-
> README | 2 +
> tests/Makefile.am | 2 +
> tests/test-data-extents.sh | 131 +++++++++++++++++++++++++++++++++++++
> 7 files changed, 207 insertions(+), 4 deletions(-)
>
> +int
> +sparse_array_extents (struct sparse_array *sa,
> + uint32_t count, uint64_t offset,
> + struct nbdkit_extents *extents)
> +{
> + uint32_t n, type;
> + void *p;
> +
> + while (count > 0) {
> + p = lookup (sa, offset, false, &n, NULL);
>...
2019 Apr 24
2
Re: [PATCH nbdkit v5 FINAL 14/19] data, memory: Implement extents.
On 4/23/19 4:49 PM, Richard W.M. Jones wrote:
>>
>> ...to here, after the final nbdkit_add_extent, so that we can return a
>> larger extent than the client's request. I remember when I originally
>> asked, you declined due to odd interactions with REQ_ONE semantics, but
>> since then, we changed how add_extent() works. Does it work now to defer
>> the
2019 Mar 25
0
Re: [PATCH nbdkit 6/8] data, memory: Implement extents.
On Sat, Mar 23, 2019 at 12:05:51PM -0500, Eric Blake wrote:
> On 3/20/19 5:11 PM, Richard W.M. Jones wrote:
> > These plugins are both based on the same sparse array structure which
> > supports a simple implementation of extents.
> > ---
>
> > +int
> > +sparse_array_extents (struct sparse_array *sa,
> > + uint32_t count, uint64_t offset,
> > + struct nbdkit_extents *extents)
> > +{
> > + uint32_t n, type;
> > + void *p;
> > +
> > + while (count > 0) {
> > + p = looku...
2019 Apr 23
0
Re: [PATCH nbdkit v5 FINAL 14/19] data, memory: Implement extents.
...ry/memory.c | 16 ++++-
> > README | 2 +
> > tests/Makefile.am | 2 +
> > tests/test-data-extents.sh | 131 +++++++++++++++++++++++++++++++++++++
> > 7 files changed, 207 insertions(+), 4 deletions(-)
> >
> > +int
> > +sparse_array_extents (struct sparse_array *sa,
> > + uint32_t count, uint64_t offset,
> > + struct nbdkit_extents *extents)
> > +{
> > + uint32_t n, type;
> > + void *p;
> > +
> > + while (count > 0) {
> > + p = looku...
2019 Apr 23
8
[nbdkit PATCH 0/4] Start using cleanup macros in filters/plugins
There's more that can be done (in particular, use of CLEANUP_FREE),
but this is enough to at least see if I'm on the right track.
I couldn't figure out an obvious difference between common/include and
common/utils, but it looks like the former is for things that are
inlineable via .h only, while the latter is when you need to link in
a convenience library, so this landed in the
2019 Mar 28
1
Re: [PATCH nbdkit 6/8] data, memory: Implement extents.
...05:51PM -0500, Eric Blake wrote:
> > On 3/20/19 5:11 PM, Richard W.M. Jones wrote:
> > > These plugins are both based on the same sparse array structure which
> > > supports a simple implementation of extents.
> > > ---
> >
> > > +int
> > > +sparse_array_extents (struct sparse_array *sa,
> > > + uint32_t count, uint64_t offset,
> > > + struct nbdkit_extents *extents)
> > > +{
> > > + uint32_t n, type;
> > > + void *p;
> > > +
> > > + while (count...
2020 Feb 10
2
[nbdkit PATCH 04/10] plugins: Wire up in-memory plugin support for NBD_INFO_INIT_STATE
...}
if (!page)
return NULL;
@@ -355,6 +363,7 @@ sparse_array_zero (struct sparse_array *sa, uint32_t count, uint64_t offset)
__func__, offset);
free (*l2_page);
*l2_page = NULL;
+ sa->used_pages--;
}
}
@@ -398,3 +407,22 @@ sparse_array_extents (struct sparse_array *sa,
return 0;
}
+
+void
+sparse_array_set_size (struct sparse_array *sa, uint64_t size)
+{
+ assert (size <= INT64_MAX);
+ sa->max_pages = DIV_ROUND_UP (size, PAGE_SIZE);
+}
+
+int
+sparse_array_is_sparse (struct sparse_array *sa)
+{
+ return sa->used_page...
2019 Mar 20
15
[PATCH nbdkit 0/8] Implement extents using a simpler array.
Not sure what version we're up to, but this reimplements extents using
the new simpler structure described in this thread:
https://www.redhat.com/archives/libguestfs/2019-March/msg00077.html
I also fixed most of the things that Eric pointed out in the previous
review, although I need to go back over his replies and check I've got
everything.
This needs a bit more testing. However the
2019 Mar 26
21
[PATCH nbdkit v4 00/15] Implement Block Status.
I'm not sure exactly which version we're up to, but let's say it's
version 4.
I'm a lot happier with this version:
- all filters have been reviewed and changed where I think that's necessary
- can_extents is properly defined and implemented now
- NBD protocol is followed
- I believe it addresses all previous review points where possible
The "only" thing
2019 Mar 19
15
[PATCH nbdkit 0/9] [mainly for discussion and early review] Implement extents.
I want to post this but mainly for discussion and early review. It's
not safe for these patches to all go upstream yet (because not all
filters have been checked/adjusted), but if any patches were to go
upstream then probably 1 & 2 only are safe.
File, VDDK, memory and data plugins all work, although I have only
done minimal testing on them.
The current tests, such as they are, all
2019 Mar 28
32
[PATCH nbdkit v5 FINAL 00/19] Implement extents.
This has already been pushed upstream. I am simply posting these here
so we have a reference in the mailing list in case we find bugs later
(as I'm sure we will - it's a complex patch series).
Great thanks to Eric Blake for tireless review on this one. It also
seems to have identified a few minor bugs in qemu along the way.
Rich.
2019 May 10
11
[nbdkit PATCH 0/9] RFC: implement NBD_CMD_CACHE
I'm still working my way through the filters before this series will
be complete, but this is enough of a start to at least get some
feedback on the idea of implementing another NBD protocol extension.
Eric Blake (9):
server: Internal hooks for implementing NBD_CMD_CACHE
plugins: Add .cache callback
file, split: Implement .cache with posix_fadvise
nbd: Implement NBD_CMD_CACHE
2020 Feb 10
17
Cross-project NBD extension proposal: NBD_INFO_INIT_STATE
I will be following up to this email with four separate threads each
addressed to the appropriate single list, with proposed changes to:
- the NBD protocol
- qemu: both server and client
- libnbd: client
- nbdkit: server
The feature in question adds a new optional NBD_INFO_ packet to the
NBD_OPT_GO portion of handshake, adding up to 16 bits of information
that the server can advertise to the