summary |
shortlog | log |
commit |
commitdiff |
tree
first ⋅ prev ⋅ next
gtsouk [Wed, 4 Jan 2012 19:18:14 +0000 (21:18 +0200)]
Merge wip-sysfs into xseg, with amendments
Conflicts:
xseg/sys/xsegbd.c
Amendments:
struct completion is now per-request, not per-device.
The xsegbd callback (heuristically) knows when
xreq->priv is an index of an I/O request or a pointer
to a completion struct, and branches out accordingly.
The request is handled by the blocker,
and now, xsegbd_get_size() can cause initialization to fail.
Untested.
Stratos Psomadakis [Wed, 4 Jan 2012 13:56:55 +0000 (15:56 +0200)]
Replace busy-wait loop in get_size with completion
gtsouk [Wed, 4 Jan 2012 12:43:03 +0000 (14:43 +0200)]
Merge branch 'wip-sysfs' into xseg
Conflicts:
xseg/sys/xsegbd.c
There is printk-logging leading up to a lock-up
in get_size(). This is currently broken.
gtsouk [Wed, 4 Jan 2012 09:53:50 +0000 (11:53 +0200)]
make some field types arch-neutral
gtsouk [Tue, 3 Jan 2012 22:56:57 +0000 (00:56 +0200)]
Merge branch 'wip-xinfo-fixed' into xseg
Conflicts:
xseg/sys/xsegbd.c [trivial]
Stratos Psomadakis [Tue, 3 Jan 2012 19:35:23 +0000 (21:35 +0200)]
Simplify callback req demultiplexing (temp).
Until prepare_wait() is fixed to support an extra
argument, we can manually assign port.waitcue to the address of the
appropriate xsegbd_device struct before submitting the request,
simplifiying the callback request demultiplexing (don't iterate
the devices list).
Stratos Psomadakis [Tue, 3 Jan 2012 15:44:53 +0000 (17:44 +0200)]
xsegbd: add multiple 'disk' support via sysfs.
Add initial (not tested/buggy) multiple disk support to xsegbd via a
sysfs interface similar to rbd.
Giannakos Filippos [Fri, 23 Dec 2011 12:35:57 +0000 (14:35 +0200)]
add support for larger than 1 segment requests + xseg_signaling.
Stratos Psomadakis [Thu, 22 Dec 2011 21:24:08 +0000 (23:24 +0200)]
xsegbd: Don't destroy the segment, if it exists.
Stratos Psomadakis [Thu, 22 Dec 2011 21:13:54 +0000 (23:13 +0200)]
Allow disksize override with sector_size parameter.
Allow a non-zero sector_size module parameter to override the disk
size returned by xsegbd_get_size()
Stratos Psomadakis [Thu, 22 Dec 2011 21:07:38 +0000 (23:07 +0200)]
Minor fixes in xsegbd_get_size().
Remove the useless prep_wait() and cancel_wait() calls in xsegbd_get_size() and
add some comments to document its behavior.
Stratos Psomadakis [Thu, 22 Dec 2011 20:54:56 +0000 (22:54 +0200)]
Move segment unmap() in xsegbd module.
We cannot unmap a segment in xseg_destroy(), since the segment may not
be mapped. Since it currently only affects xsegbd, move it in
xsegbd_xseg_quit(), inside the xsegbd module.
Stratos Psomadakis [Thu, 22 Dec 2011 20:47:03 +0000 (22:47 +0200)]
Refactor cmd_info() code in xseg-tool.
Refactor cmd_info code in xseg-tool. Use cmd_wait to get the response.
Stratos Psomadakis [Thu, 22 Dec 2011 14:35:51 +0000 (16:35 +0200)]
Make xsegbd query peer for disk size(using X_INFO)
xsegbd will now send an X_INFO request to learn the size of the disk it's
mapping, instead of using the sector_size parameter at module load time.
Currently, xsegbd allocates its own segment, and thus it must wait until blockd
(or another peer with X_INFO support) joins the segment to get a response (this
will probably change soon).
Stratos Psomadakis [Thu, 22 Dec 2011 14:29:28 +0000 (16:29 +0200)]
Make sure to unmap the segment in xseg_destroy()
Add xops->unmap() in xseg_destroy(). If you don't unmap the segment before
calling xops->deallocate(), xsegdev->callback and xsegdev->callarg are not set
to NULL when rmmoding xsegbd, and lead to an error (or kernel panic) when trying
to insmod xsegbd without rmmoding xsegdev and xseg.
Stratos Psomadakis [Wed, 21 Dec 2011 20:27:08 +0000 (22:27 +0200)]
Add (initial) support for X_INFO request operation
Add support for X_INFO request operation, to query information about a
target (X_INFO op support implemented in xseg-tool). Initial blockd
implementation 'returns' only the size of the target / file.
Giannakos Filippos [Fri, 16 Dec 2011 15:25:08 +0000 (17:25 +0200)]
make blockd loop over pending ios.
Giannakos Filippos [Fri, 16 Dec 2011 15:24:20 +0000 (17:24 +0200)]
remove close with negative file descriptor
Giannakos Filippos [Fri, 16 Dec 2011 10:47:59 +0000 (12:47 +0200)]
Merge branch 'philfix'
Giannakos Filippos [Fri, 16 Dec 2011 10:41:12 +0000 (12:41 +0200)]
initialize lock in xq initialization.
Giannakos Filippos [Fri, 16 Dec 2011 10:37:36 +0000 (12:37 +0200)]
remove obsolete XSEG_{FLUSH,FUA}.
Georgios D. Tsoukalas [Tue, 13 Dec 2011 15:51:42 +0000 (17:51 +0200)]
Merge branch 'philfix'
Giannakos Filippos [Tue, 13 Dec 2011 15:40:10 +0000 (17:40 +0200)]
fix buffer handling on incomplete/resubmitted reqs
Giannakos Filippos [Tue, 13 Dec 2011 15:28:43 +0000 (17:28 +0200)]
fix log_io printing beyond end-of-string garbage
Georgios D. Tsoukalas [Tue, 13 Dec 2011 15:19:00 +0000 (17:19 +0200)]
Add pthread to linked libraries
Georgios D. Tsoukalas [Tue, 13 Dec 2011 15:12:00 +0000 (17:12 +0200)]
relax shared segment access precautions
The shared array of peer type names is by design
append only, therefore no locking or copying strings
is needed to access it (only pointer conversions).
Append-only means that peer type names cannot be unregistered.
Unregistering is complicated because peers "cache"
the information they read from the shared array.
Giannakos Filippos [Tue, 13 Dec 2011 14:51:14 +0000 (16:51 +0200)]
fix invalid shared pointer access and wrong retval
also, lock and copy string from shared segment,
as a precaution.
Georgios D. Tsoukalas [Tue, 13 Dec 2011 14:33:35 +0000 (16:33 +0200)]
relax redundant shared access precautions
Shared access to the shared array of peer type names
was designed to be safe without locking or copying
because the peer type name array is append only,
i.e. no peer type names can be unregistered.
Unregistering introduces many other problems
(and not just the lock/copy avoided here),
such as need for "cache" invalidation among peers,
who had previously accessed the shared array.
Giannakos Filippos [Tue, 13 Dec 2011 14:25:46 +0000 (16:25 +0200)]
fix invalid pointer access to shared segment.
Also, add locking and copying shared data, for safety.
Georgios D. Tsoukalas [Tue, 13 Dec 2011 09:47:57 +0000 (11:47 +0200)]
initialization from my own repository