FIx .gitignores for the new build system
Merge remote branch 'origin/xseg' into demo
Conflicts: xseg/tools/vlmc-blockd.py [trivial]
Fix rc file parsing for the vlmc python tools
Improve error handling for xseg setup scripts
remove spurious include paths from compilation
Merge branch 'vlmcd-as-blockd' into xseg
Conflicts: xseg/peers/MakefileFixes: fix target autodetection in base.mk fix issues with vlmcd, still does not build
README placeholder files for lib/ directories
Introduce execution domains in code and building
Only fixed to compile. Untested.
Lots of refactoring, cleanup, and fixing in the process.This log has three parts:1. What are execution domains and why we need them2. What are the API incompatibilities introduced...
Merge branch 'xseg' into vlmcd-as-blockd
Initial, completely broken skeleton of a vlmcd
Initial, completely broken skeleton of a vlmcd,single-threaded, modelled after blockd.
There doesn't seem to be a need for multithreadedoperation if a peer is only interacting with other xseg peers.
move qa/ to tools/
envsetup script to exec or source for env setup
Sets up XSEG_HOME PATH LD_LIBRARY_PATH etc.
If it is executed, it starts a new $SHELL.If it is sourced, it just exports the variables.
filed: Fix lost wakeups between IO-threads
Race condition with free_io() / wait_cond() and alloc_io() /cond_signal(), results in lost-wakeups between IO threadsand causes threads and eventually filed to deadlock.
Thread 1 Thread 2free_io x -...
Remove traling whitespace in vlmc_shared
vlmc: Minor fix for prev commit
vlmc: Split common funcs to a separate file
tools: Add configurable NR_OPS for blockd/filed
blockd: Optionally log pending_io()
Yet another typo
vlmc-tool: Fix typo of prev commit
vlmc-tool: Don't use hardcoded reqs number
Enable optional request logging for blockd/filed
Use correct sysfs attr (srcport) when mapping
blockd: Make request logging optional
blockd: Fix cli option/argument for nr_ops
Minor fix for vlmc/xseg-setup
Fix vlmc-filed.py free port scanning
Fixes for vlmc-filed
Add support for filed in the vlmc tool
Merge remote-tracking branch 'origin/xseg' into merger
Conflicts: xseg/tools/vlmc.py xseg/tools/xseg_setup.sh
Conflicts Resolution: vlmc.py: * Keep the \t -> space changes from the xseg branch * Keep the new parsing scheme from the tools xseg_setup.sh:...
xsegbd/xsegdev: Fix xsegbd/xsegdev memory leak
xsegdev_get/put and the associated xsegdev->userfield struct memberwere incorrectly used, resulting in a memory leak, where xsegdevsegment wasn't (v)freed at xsegdev unload.
Refs #3
Remove incorrect comment
Introduce various fixes, run end-to-end
Introduce various fixes, some aesthetic, to makethe infrastructure run end-to-end, xsegbd-to-filedafter merging of the filed and tools branches.
Initial support for config parsing for vlmc-tool
Minor parsing fixes for vlmc tool
Minor fixes for helpers
Fixes for the vlmc-tool * Change the parsing to be compatible with ganeti rbd calls * Force python2.7 (needed by subprocess module)
More fixes for helper scripts
Fix two instances of XS_ERROR
Merge branch 'tools' into xseg
Conflicts: xseg/xq/xq.c
Merge branch 'filed' into xseg
XS_ERROR renamed to XS_FAILED
portable and future-proof locks
relative pointers
relative pointer doubly linked lists
Correct the tests for unset config variables
Helper scripts to setup and test xsge components
Initial commit for the (blockd-specific) vlmc tool
Fix a bug in device id assignment
xsegbd: Add name in sysfs device attrs
Minor fix in request_fn
Correct string handling for target names
Initial support for target names
blockd will now only accept requests based on the target name (ie only for thefile it has opened), and will return an XS_ERROR reqeust otherwise.
xsegbd will now take a target name as an argument when adding a device via...
xsegbd: Release and error code paths fixes
Fix issues with the release / exit and error handling code paths.
xq: Fix iteration bug in xq_head_to_tail()
Since __xq_pop_head() decrements head to point to the (new) firstavailable item in the queue, xq_head_to_tail() should iterate headqforward (by incrementing head), not backwards. Backward iterationresults in xq corruption, which can easily be triggered using...
fix broken xq_head_to_tail()
used by xseg_free_requests(),bug exposed by add/remove device tests by psomas.
Also, refactor so that __xq_append_tail() returnsthe index to the leftmost (least) side of the queue buffer,as is the convention with all other 3 functions...
fix race condition on error when opening the same file from diffrent threads
remove per cache entry lock. replace it with atomic operations in ref count
add xinfo support
get rid of flush. call fsync after write
fix xseg_signal() posix retval and warning
fix bug in cache
initial threaded filed commit
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....
Replace busy-wait loop in get_size with completion
Merge branch 'wip-sysfs' into xseg
There is printk-logging leading up to a lock-upin get_size(). This is currently broken.
make some field types arch-neutral
Merge branch 'wip-xinfo-fixed' into xseg
Conflicts: xseg/sys/xsegbd.c [trivial]
Simplify callback req demultiplexing (temp).
Until prepare_wait() is fixed to support an extraargument, we can manually assign port.waitcue to the address of theappropriate xsegbd_device struct before submitting the request,simplifiying the callback request demultiplexing (don't iterate...
xsegbd: add multiple 'disk' support via sysfs.
Add initial (not tested/buggy) multiple disk support to xsegbd via asysfs interface similar to rbd.
add support for larger than 1 segment requests + xseg_signaling.
xsegbd: Don't destroy the segment, if it exists.
Allow disksize override with sector_size parameter.
Allow a non-zero sector_size module parameter to override the disksize returned by xsegbd_get_size()
Minor fixes in xsegbd_get_size().
Remove the useless prep_wait() and cancel_wait() calls in xsegbd_get_size() andadd some comments to document its behavior.
Move segment unmap() in xsegbd module.
We cannot unmap a segment in xseg_destroy(), since the segment may notbe mapped. Since it currently only affects xsegbd, move it inxsegbd_xseg_quit(), inside the xsegbd module.
Refactor cmd_info() code in xseg-tool.
Refactor cmd_info code in xseg-tool. Use cmd_wait to get the response.
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'smapping, instead of using the sector_size parameter at module load time.
Currently, xsegbd allocates its own segment, and thus it must wait until blockd...
Make sure to unmap the segment in xseg_destroy()
Add xops->unmap() in xseg_destroy(). If you don't unmap the segment beforecalling xops->deallocate(), xsegdev->callback and xsegdev->callarg are not setto NULL when rmmoding xsegbd, and lead to an error (or kernel panic) when trying...
Add (initial) support for X_INFO request operation
Add support for X_INFO request operation, to query information about atarget (X_INFO op support implemented in xseg-tool). Initial blockdimplementation 'returns' only the size of the target / file.
make blockd loop over pending ios.
remove close with negative file descriptor
initialize lock in xq initialization.
remove obsolete XSEG_{FLUSH,FUA}.
fix buffer handling on incomplete/resubmitted reqs
fix log_io printing beyond end-of-string garbage
Add pthread to linked libraries
relax shared segment access precautions
The shared array of peer type names is by designappend only, therefore no locking or copying stringsis needed to access it (only pointer conversions).Append-only means that peer type names cannot be unregistered....
fix invalid shared pointer access and wrong retval
also, lock and copy string from shared segment,as a precaution.
initialization from my own repository