Commit 7f95de86 authored by Dries Kimpe's avatar Dries Kimpe
Browse files

Import BMI from IOFSL

parent 5c8061ba
Design and development of PVFS2 is lead by a collaboration of
researchers from the following institutions*:
Parallel Architecture Research Laboratory at
Clemson University
Mathematics and Computer Science Division at
Argonne National Laboratory
*All named authors are associated with one of these institutions.
Other contributors are listed in the CREDITS file.
Active Authors (Maintainers)
============================
core design, documentation and implementation by:
Robert Ross <rross@mcs.anl.gov>
Walt Ligon <walt@parl.clemson.edu>
Phil Carns <pcarns@parl.clemson.edu>
Robert Latham <robl@mcs.anl.gov>
Other Authors
=============
Neill Miller <neillm@mcs.anl.gov> (01/2003 - 01/2005)
-- retired author, maintainer, and release manager
Frank Shorter <fshorte@parl.clemson.edu>
-- client side API development, system test harnesses
Harish Ramachandran <rharish@parl.clemson.edu>
-- initial client side API implementation
Dale Whitchurch <dalew@parl.clemson.edu>
-- initial server state machine implementation
Mike Speth <mspeth@parl.clemson.edu>
-- some PTS correctness tests
Brad Settlemyer <bradles@CLEMSON.EDU>
-- distribution framework enhancements
This diff is collapsed.
Active contributors
===================
Pete Wyckoff <pw@osc.edu>
-- Infiniband support
little endian encoding/decoding
IA64/Alpha clean compilation fixes
extensive testing
Jiesheng Wu <wujs@mcs.anl.gov>
-- buffer cache development (in progress)
Nathan Poznick <poznick@conwaycorp.net>
-- extensive testing and suggestions (linux vfs interface)
various pvfs2-client related patches (noted in cvs logs)
authored the pvfs2-chown admin utility program
detailed bug reporting and analysis
fixed permissions on newly created dirs using pvfs2-mkdir
misc formatting patches
misc warning removals
Murali Vilayannur <vilayann@mcs.anl.gov>
-- testing and development
initial linux 2.4.x prototype (before 2.6.x merge)
initial 64-bit operation tag implementation (in kernel)
misc kernel code bug fixes
Sven Marnach <sven@pvs.informatik.uni-heidelberg.de>
-- fixed makefile LD selection and html docs target
Philipp Sadleder <philipp@sadleder.de>
-- reported a problem with large username handling in pvfs2-ls
extended pvfs2-cp to truncate target files if they exist
-- Updated documentation for dist-simple-stripe.c and modified
the basic distribution to use a single data file object.
David Beilloin <dbeilloi@mc.com>
-- reported that temp configuration files on the client should be
created in /tmp (if possible) rather than the current directory
since pvfs2 programs may be run from slow file systems (such as
NFS)
-- reported memory leak in pvfs2-rm admin tool
-- contributed resource reclamation on some failure cases
-- contributed strip size to pvfs2-cp
Phil Carns and David Metheny
- lots of cleanups to the VFS and system interfaces
- contributed pvfs2-stat, pvfs2-ln, cleanups to pvfs2-mkdir and pvfs2-rm
- cleanups to pvfs2-genconfig
- config file enhancements
- /sbin/mount.pvfs2 helper tool for 2.4 kernels
- contributed support for /etc/mtab as an additional source for a pvfs2 tabfile
entry
Other contributors
==================
Georg Kraml <georg@ads.tuwien.ac.at>
-- AVL tree implementation (public domain)
Lukas Schroeder's
-- the general purpose dotconf (http://www.azzit.de/dotconf/)
project for configuration file parsing (LGPL)
Mark Veltzer
-- realized the single makefile approach used in pvfs2
Dan Nurmi
-- started work on the PTS back when the P stood for pvfs-1
Bitstream, Inc.
-- The fonts used in the pvfs2 visualization tools (src/apps/vis)
(may be redistributed subject to the license which is embedded in
the font files themselves)
SDL project
-- pvfs2-config borrows heavily from sdl-config
Kyle Schochenmaier
-- Ported BMI InfiniBand to OpenIB API
This diff is collapsed.
Please see the quickstart guide as found in:
doc/pvfs2-quickstart.pdf
doc/pvfs2-quickstart.ps
This diff is collapsed.
The Parallel Virtual File System, Version 2
Parallel Architecture Research Laboratory, Clemson University
Mathematics and Computer Science Division, Argonne National Laboratory
PVFS2 is a next generation parallel file system for Linux clusters. It
harnesses commodity storage and network technology to provide concurrent
access to data that is distributed across a (possibly large) collection
of servers. PVFS2 serves as both a testbed for parallel I/O research
and as a freely available production-level tool for the cluster community.
See the top level COPYING file for license information.
NOTE: The pvfs2 kernel modules for 2.4.x and 2.6.x are released under
the terms of the GNU General Public License.
Information about building and installing PVFS2 can be found in:
doc/pvfs2-quickstart.pdf
doc/pvfs2-quickstart.ps
Information about the current state of the project can be found in:
doc/pvfs2-status.pdf
doc/pvfs2-status.ps
A user's manual and introduction to PVFS2 can be found in:
doc/pvfs2-guide.pdf
doc/pvfs2-guide.ps
Documentation of interest to developers can be found in doc/design and
doc/coding, although it may not be in sync with the current code.
Project contributions are listed in the AUTHORS and CREDITS files.
-PVFS2 Development Team
# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
m4_include([maint/config/bdb.m4])
m4_include([maint/config/gm.m4])
m4_include([maint/config/ib.m4])
m4_include([maint/config/kernel.m4])
m4_include([maint/config/mx.m4])
m4_include([maint/config/openssl.m4])
m4_include([maint/config/portals.m4])
m4_include([maint/config/rt.m4])
m4_include([maint/config/zoid.m4])
This diff is collapsed.
This diff is collapsed.
/*
* (C) 2003-6 Pete Wyckoff, Ohio Supercomputer Center <pw@osc.edu>
*
* See COPYING in top-level directory.
*
* Stubs for user codes to hide the encoding functions.
*/
#ifndef __PVFS2_ENCODE_STUBS_H
#define __PVFS2_ENCODE_STUBS_H
/*
* All character types are rounded up to avoid seriously unaligned accesses;
* generally handy elsewhere too.
*/
#define roundup4(x) (((x)+3) & ~3)
#define roundup8(x) (((x)+7) & ~7)
/*
* Look at the pointer value, leave it alone if aligned, or push it up to
* the next 8 bytes.
*/
#ifdef HAVE_VALGRIND_H
#define align8(pptr) do { \
int _pad = roundup8((uintptr_t) *(pptr)) - (uintptr_t) *(pptr); \
memset(*(pptr), 0, _pad); \
*(pptr) += _pad; \
} while(0);
#else
#define align8(pptr) do { \
int _pad = roundup8((uintptr_t) *(pptr)) - (uintptr_t) *(pptr); \
*(pptr) += _pad; \
} while(0);
#endif
/*
* Files that want full definitions for the encoding and decoding functions
* will define this. They need access to the full source tree. Most users
* expect these noop #defines.
*/
#ifdef __PINT_REQPROTO_ENCODE_FUNCS_C
# include "src/proto/endecode-funcs.h"
#else /* __PINT_REQPROTO_ENCODE_FUNCS_C */
/* dummy declarations to turn off functions */
#define endecode_fields_1(n,t1,x1) struct endecode_fake_struct
#define endecode_fields_1_struct(n,t1,x1) struct endecode_fake_struct
#define endecode_fields_2(n,t1,x1,t2,x2) struct endecode_fake_struct
#define endecode_fields_2_struct(n,t1,x1,t2,x2) struct endecode_fake_struct
#define endecode_fields_3(n,t1,x1,t2,x2,t3,x3) struct endecode_fake_struct
#define endecode_fields_3_struct(n,t1,x1,t2,x2,t3,x3) struct endecode_fake_struct
#define endecode_fields_4(n,t1,x1,t2,x2,t3,x3,t4,x4) struct endecode_fake_struct
#define endecode_fields_4_struct(n,t1,x1,t2,x2,t3,x3,t4,x4) struct endecode_fake_struct
#define endecode_fields_5(n,t1,x1,t2,x2,t3,x3,t4,x4,t5,x5) struct endecode_fake_struct
#define endecode_fields_5_struct(n,t1,x1,t2,x2,t3,x3,t4,x4,t5,x5) struct endecode_fake_struct
#define endecode_fields_6(n,t1,x1,t2,x2,t3,x3,t4,x4,t5,x5,t6,x6) struct endecode_fake_struct
#define endecode_fields_7_struct(n,t1,x1,t2,x2,t3,x3,t4,x4,t5,x5,t6,x6,t7,x7) struct endecode_fake_struct
#define endecode_fields_8_struct(n,t1,x1,t2,x2,t3,x3,t4,x4,t5,x5,t6,x6,t7,x7,t8,x8) struct endecode_fake_struct
#define endecode_fields_9_struct(n,t1,x1,t2,x2,t3,x3,t4,x4,t5,x5,t6,x6,t7,x7,t8,x8,t9,x9) struct endecode_fake_struct
#define endecode_fields_10_struct(n,t1,x1,t2,x2,t3,x3,t4,x4,t5,x5,t6,x6,t7,x7,t8,x8,t9,x9,t10,x10) struct endecode_fake_struct
#define endecode_fields_11_struct(n,t1,x1,t2,x2,t3,x3,t4,x4,t5,x5,t6,x6,t7,x7,t8,x8,t9,x9,t10,x10,t11,x11) struct endecode_fake_struct
#define endecode_fields_12(n,t1,x1,t2,x2,t3,x3,t4,x4,t5,x5,t6,x6,t7,x7,t8,x8,t9,x9,t10,x10,t11,x11,t12,x12) struct endecode_fake_struct
#define endecode_fields_1a(n,t1,x1,tn1,n1,ta1,a1) struct endecode_fake_struct
#define endecode_fields_1a_struct(n,t1,x1,tn1,n1,ta1,a1) struct endecode_fake_struct
#define endecode_fields_1aa_struct(n,t1,x1,tn1,n1,ta1,a1,ta2,a2) struct endecode_fake_struct
#define endecode_fields_2a_struct(n,t1,x1,t2,x2,tn1,n1,ta1,a1) struct endecode_fake_struct
#define endecode_fields_2aa_struct(n,t1,x1,t2,x2,tn1,n1,ta1,a1,ta2,a2) struct endecode_fake_struct
#define endecode_fields_3a_struct(n,t1,x1,t2,x2,t3,x3,tn1,n1,ta1,a1) struct endecode_fake_struct
#define endecode_fields_4aa_struct(n,t1,x1,t2,x2,t3,x3,t4,x4,tn1,n1,ta1,a1,ta2,a2) struct endecode_fake_struct
#define endecode_fields_1a_1a_struct(n,t1,x1,tn1,n1,ta1,a1,t2,x2,tn2,n2,ta2,a2) struct endecode_fake_struct
#define endecode_fields_4a_struct(n,t1,x1,t2,x2,t3,x3,t4,x4,tn1,n1,ta1,a1) struct endecode_fake_struct
#define endecode_fields_5a_struct(n,t1,x1,t2,x2,t3,x3,t4,x4,t5,x5,tn1,n1,ta1,a1) struct endecode_fake_struct
#define encode_enum_union_2_struct(name, ename, uname, ut1, un1, en1, ut2, un2, en2) struct endecode_fake_struct
#endif /* __PINT_REQPROTO_ENCODE_FUNCS_C */
#endif /* __PVFS2_ENCODE_STUBS_H */
/*
* (C) 2001 Clemson University and The University of Chicago
*
* See COPYING in top-level directory.
*/
/* This header defines values necessary to interpret PVFS2 event logs */
/* TODO: need to come up with a more friendly way to manage these enums
* maybe a way to map them to strings as well?
*/
#ifndef __PVFS2_EVENT_H
#define __PVFS2_EVENT_H
/* different API levels where we can log events */
enum PVFS_event_api
{
PVFS_EVENT_API_JOB = (1 << 0),
PVFS_EVENT_API_BMI = (1 << 1),
PVFS_EVENT_API_TROVE = (1 << 2),
PVFS_EVENT_API_ENCODE_REQ = (1 << 3), /* protocol request encode */
PVFS_EVENT_API_ENCODE_RESP = (1 << 4), /* protocol response encode */
PVFS_EVENT_API_DECODE_REQ = (1 << 5), /* protocol request decode */
PVFS_EVENT_API_DECODE_RESP = (1 << 6), /* protocol response decode */
PVFS_EVENT_API_SM = (1 << 7) /* state machines */
};
/* what kind of event */
enum PVFS_event_flag
{
PVFS_EVENT_FLAG_NONE = 0,
PVFS_EVENT_FLAG_START = (1 << 0),
PVFS_EVENT_FLAG_END = (1 << 1),
PVFS_EVENT_FLAG_INVALID = (1 << 2)
};
/* kind of operation, may exist in multiple APIs */
enum PVFS_event_op
{
PVFS_EVENT_BMI_SEND = 1,
PVFS_EVENT_BMI_RECV = 2,
PVFS_EVENT_FLOW = 3,
PVFS_EVENT_TROVE_READ_AT = 4,
PVFS_EVENT_TROVE_WRITE_AT = 5,
PVFS_EVENT_TROVE_BSTREAM_FLUSH = 6,
PVFS_EVENT_TROVE_KEYVAL_FLUSH = 7,
PVFS_EVENT_TROVE_READ_LIST = 8,
PVFS_EVENT_TROVE_WRITE_LIST = 9,
PVFS_EVENT_TROVE_KEYVAL_READ = 10,
PVFS_EVENT_TROVE_KEYVAL_READ_LIST = 11,
PVFS_EVENT_TROVE_KEYVAL_WRITE = 12,
PVFS_EVENT_TROVE_DSPACE_GETATTR = 13,
PVFS_EVENT_TROVE_DSPACE_SETATTR = 14,
PVFS_EVENT_TROVE_BSTREAM_RESIZE = 15,
PVFS_EVENT_TROVE_KEYVAL_REMOVE = 16,
PVFS_EVENT_TROVE_KEYVAL_ITERATE = 17,
PVFS_EVENT_TROVE_KEYVAL_ITERATE_KEYS = 18,
PVFS_EVENT_TROVE_DSPACE_ITERATE_HANDLES = 19,
PVFS_EVENT_TROVE_DSPACE_CREATE = 20,
PVFS_EVENT_TROVE_DSPACE_REMOVE = 21,
PVFS_EVENT_TROVE_DSPACE_VERIFY = 22,
PVFS_EVENT_TROVE_BSTREAM_VALIDATE = 23,
PVFS_EVENT_TROVE_KEYVAL_VALIDATE = 24,
PVFS_EVENT_TROVE_KEYVAL_WRITE_LIST = 25,
PVFS_EVENT_TROVE_KEYVAL_GET_HANDLE_INFO = 26,
PVFS_EVENT_TROVE_DSPACE_GETATTR_LIST = 27,
PVFS_EVENT_TROVE_KEYVAL_REMOVE_LIST = 28,
};
#endif /* __PVFS2_EVENT_H */
/*
* Local variables:
* c-indent-level: 4
* c-basic-offset: 4
* End:
*
* vim: ts=8 sts=4 sw=4 expandtab
*/
/*
* (C) 2001 Clemson University and The University of Chicago
*
* See COPYING in top-level directory.
*/
#ifndef __PVFS2_HINT_H
#define __PVFS2_HINT_H
#include "pvfs2-types.h"
#define PVFS_HINT_REQUEST_ID_NAME "pvfs.hint.request_id"
#define PVFS_HINT_CLIENT_ID_NAME "pvfs.hint.client_id"
#define PVFS_HINT_HANDLE_NAME "pvfs.hint.handle"
#define PVFS_HINT_OP_ID_NAME "pvfs.hint.op_id"
#define PVFS_HINT_RANK_NAME "pvfs.hint.rank"
#define PVFS_HINT_SERVER_ID_NAME "pvfs.hint.server_id"
typedef struct PVFS_hint_s *PVFS_hint;
#define PVFS_HINT_NULL NULL
int PVFS_hint_add(
PVFS_hint *hint,
const char *type,
int length,
void *value);
int PVFS_hint_replace(
PVFS_hint *hint,
const char *type,
int length,
void *value);
int PVFS_hint_copy(PVFS_hint old_hint, PVFS_hint *new_hint);
void PVFS_hint_free(PVFS_hint hint);
/* check to see if a hint has already been added */
int PVFS_hint_check(PVFS_hint *hints, const char *type);
/*
* function allows users to specify hints in an environment variable.
*/
int PVFS_hint_import_env(PVFS_hint *out_hint);
#endif /* __PVFS2_HINT_H */
/*
* Local variables:
* mode: c
* c-indent-level: 4
* c-basic-offset: 4
* End:
*
* vim: ft=c ts=8 sts=4 sw=4 expandtab
*/
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment