2002-09-30 22:28:40

by Kevin Corry

[permalink] [raw]
Subject: [ANNOUNCE] EVMS Release 1.2.0

The EVMS team is announcing the next stable release of the Enterprise Volume
Management System, which will eventually become EVMS 2.0. Package 1.2.0 is
now available for download at the project web site:
http://www.sf.net/projects/evms

EVMS 1.2.0 has full support for the 2.4 kernel, and includes patches for most
kernels up to 2.4.19. It also has nearly full support for the 2.5 kernel
(only the OS/2 and S/390 plugins have not been ported yet), and includes a
patch for kernels 2.5.38 and 2.5.39.

Please send any questions, problem reports or bugs to the EVMS mailing list:
[email protected].


v1.2.0 - 9/30/02
Engine Core
- Enable limited rediscovery
- Only issue rediscover commands on disks affected by current changes,
instead of every disk in the system.
- Clean up stop-data that is no longer needed.
- Improve plug-in validation.
- No longer include kernel header files. Copy appropriate definitions,
structures, code, etc. to user-space header files.
GUI
- More keyboard accelerator keys for most windows.
- Allow selecting multiple objects to remove or destroy.
- Allow expanding containers through context popup menu.
- Allow creating regions and segments from freespace objects through
context popup menu.
- Useability enhancements and terminology sync-up with other UIs.
Text-Mode UI (ncurses)
- Support for commit status and progress indicators.
- Add convert-to-compatibility-volume action to Volumes view.
- Display an error on the status line if setting an option value failed.
- Bug fixes
- Segfault when attempting to select an item from an empty selection list.
- Pressing "Enter" in an option panel when required options have no values.
- Scrolling in available objects list.
- Having to press spacebar twice when editing a string field.
Command Line
- Parameter substitution
- Commands can access parameters passed into the CLI when it was started.
XFS Filesystem Interface Module
- New FSIM with mkfs, fsck, external log, and online expand support.
JFS FSIM
- Online expand support. Requires JFS 1.0.21.
AIX Plugin
- Create, delete and expand AIX containers.
- Create, delete and expand AIX regions.
Snapshot
- Correctly write COW table sectors on S/390.
MD Plugin
- 2.5 kernel plugin has been rewritten based on Neil Brown's 2.5 MD code.

-
Kevin Corry
[email protected]
http://evms.sourceforge.net/


2002-10-01 10:15:39

by Jens Axboe

[permalink] [raw]
Subject: Re: [ANNOUNCE] EVMS Release 1.2.0

On Mon, Sep 30 2002, Kevin Corry wrote:
> The EVMS team is announcing the next stable release of the Enterprise Volume
> Management System, which will eventually become EVMS 2.0. Package 1.2.0 is
> now available for download at the project web site:
> http://www.sf.net/projects/evms

[evms.c]

#ifndef CONFIG_SMP
static spinlock_t evms_request_lock = SPIN_LOCK_UNLOCKED;
#endif

...

#ifdef CONFIG_SMP
blk_dev[EVMS_MAJOR].queue = evms_find_queue;
#else
blk_init_queue(BLK_DEFAULT_QUEUE(EVMS_MAJOR),
evms_do_request_fn, &evms_request_lock);
blk_queue_make_request(BLK_DEFAULT_QUEUE(EVMS_MAJOR),
evms_make_request_fn);
#endif

...

#ifdef CONFIG_SMP
lv->request_lock = SPIN_LOCK_UNLOCKED;
blk_init_queue(&lv->request_queue,
evms_do_request_fn,
&lv->request_lock);
blk_queue_make_request(&lv->request_queue,
evms_make_request_fn);
#endif

What the hell is that about?


--
Jens Axboe

2002-10-01 13:45:20

by Kevin Corry

[permalink] [raw]
Subject: Re: [ANNOUNCE] EVMS Release 1.2.0

On Tuesday 01 October 2002 05:20, Jens Axboe wrote:
> On Mon, Sep 30 2002, Kevin Corry wrote:
> > The EVMS team is announcing the next stable release of the Enterprise
> > Volume Management System, which will eventually become EVMS 2.0. Package
> > 1.2.0 is now available for download at the project web site:
> > http://www.sf.net/projects/evms
>
> [evms.c]
>
> #ifndef CONFIG_SMP
> static spinlock_t evms_request_lock = SPIN_LOCK_UNLOCKED;
> #endif
>
> ...
>
> #ifdef CONFIG_SMP
> blk_dev[EVMS_MAJOR].queue = evms_find_queue;
> #else
> blk_init_queue(BLK_DEFAULT_QUEUE(EVMS_MAJOR),
> evms_do_request_fn, &evms_request_lock);
> blk_queue_make_request(BLK_DEFAULT_QUEUE(EVMS_MAJOR),
> evms_make_request_fn);
> #endif
>
> ...
>
> #ifdef CONFIG_SMP
> lv->request_lock = SPIN_LOCK_UNLOCKED;
> blk_init_queue(&lv->request_queue,
> evms_do_request_fn,
> &lv->request_lock);
> blk_queue_make_request(&lv->request_queue,
> evms_make_request_fn);
> #endif
>
> What the hell is that about?

The above code implements a single request queue for the EVMS driver on
uniprocessor, and per-volume request queues on SMP. This was done quite some
time ago (before 2.5), since we felt SMP was the only place where there was a
performance advantage to having multiple queues (and thus using up all the
extra memory on UP was wasteful). Since a lot of things have changed in 2.5
(e.g. prempt), there might be performance advantages on UP now as well.

I was reading over the kernel Bitkeeper changelogs last night and noticed you
made some changes to the loop driver to implement per-device queues. I talked
this over with Mark and we decided that if this was the trend, we would
switch to always using per-volume queues. If you take a look at our bitkeeper
tree, you should see that change is already in. Unfortunately, this was after
1.2.0 was released, so that change isn't available in the package I announced
yesterday. But, the 2.5 code changes almost daily anyway, so I'm not too
worried. And from looking over the Bitkeeper logs, it looks like there are
more gendisk changes in 2.5.40 that may affect EVMS, so there will probably
be additional changes today.

If you have any additional comments, please let us know.

--
Kevin Corry
[email protected]
http://evms.sourceforge.net/

2002-10-01 20:10:41

by Greg KH

[permalink] [raw]
Subject: Re: [ANNOUNCE] EVMS Release 1.2.0

On Tue, Oct 01, 2002 at 08:18:19AM -0500, Kevin Corry wrote:
>
> If you have any additional comments, please let us know.

There are still a large number of improper variable names, and quite a
few typedefs throughout the kernel patch. I thought these were going to
be fixed?

Also, is there any documentation on why the md code was reimplemented
within evms, instead of using the existing kernel code?

thanks,

greg k-h

2002-10-01 21:46:20

by Kevin Corry

[permalink] [raw]
Subject: Re: [ANNOUNCE] EVMS Release 1.2.0

On Tuesday 01 October 2002 15:13, Greg KH wrote:
> On Tue, Oct 01, 2002 at 08:18:19AM -0500, Kevin Corry wrote:
> > If you have any additional comments, please let us know.
>
> There are still a large number of improper variable names, and quite a
> few typedefs throughout the kernel patch. I thought these were going to
> be fixed?

I had thought most of them were fixed as well.

Looking at the 2.5 code, I found one left-over typedef in ldev_mgr.c, which I
have just fixed. There are some in the cluster plugin (evms_ecr.c and
evms_ecr.h), but at the moment that is just a proposed clustering interface,
since there is no actual cluster support yet. It is likely those files will
change as the clustering support is added, so they will get cleaned up along
the way. The rest of the typedef's I'm seeing are all in the OS/2 and S/390
plugins, which as I mentioned in the first announcement haven't been ported
to 2.5 yet, and thus haven't gone through any cleanup. When those get ported
to 2.5, I'll make sure they are cleaned up.

As for improper variable names, can you give me a better idea of where you
are seeing them? Any specific examples?

> Also, is there any documentation on why the md code was reimplemented
> within evms, instead of using the existing kernel code?

It had to be reimplemented in order to fit into the plugin model in EVMS. We
had many requests from our users about a year ago to support the MD metadata,
so we added it by porting the existing MD kernel code to an EVMS plugin. Mike
Tran has been keeping up with Neil Brown's latest MD code for 2.5, in an
attempt to not greatly diverge the code. I believe Mike intends to talk with
Neil at some point about seeing if there is a way to provide a common set of
code/services that could be used by both MD and EVMS.

--
Kevin Corry
[email protected]
http://evms.sourceforge.net/

2002-10-01 22:14:18

by Greg KH

[permalink] [raw]
Subject: Re: [ANNOUNCE] EVMS Release 1.2.0

On Tue, Oct 01, 2002 at 04:19:10PM -0500, Kevin Corry wrote:
>
> Looking at the 2.5 code, I found one left-over typedef in ldev_mgr.c, which I
> have just fixed. There are some in the cluster plugin (evms_ecr.c and
> evms_ecr.h), but at the moment that is just a proposed clustering interface,
> since there is no actual cluster support yet. It is likely those files will
> change as the clustering support is added, so they will get cleaned up along
> the way.

Ah, as I did not know this about the clustering support, I didn't know
that this code was not cleaned up yet, sorry.

> The rest of the typedef's I'm seeing are all in the OS/2 and S/390
> plugins, which as I mentioned in the first announcement haven't been ported
> to 2.5 yet, and thus haven't gone through any cleanup. When those get ported
> to 2.5, I'll make sure they are cleaned up.

Any reason not to also clean them up for 2.4? :)

> As for improper variable names, can you give me a better idea of where you
> are seeing them? Any specific examples?

Outside of the clustering and OS/2 and S/390 code, nothing jumps out at
me, sorry. I do see some strange formatting in a few files
(AIXlvm_vge.c is an example) where you are mixing tabs and spaces.

Also, for the code sections like:
+#ifdef EVMS_DEBUG
+ LOG_DEBUG(" read_aix Mirror_Copies:%d\n",volume->mirror_copies);
+#endif

You might just want to create another LOG_* type macro to get rid of all
of these instances of #ifdef in the code.

> > Also, is there any documentation on why the md code was reimplemented
> > within evms, instead of using the existing kernel code?
>
> It had to be reimplemented in order to fit into the plugin model in EVMS. We
> had many requests from our users about a year ago to support the MD metadata,
> so we added it by porting the existing MD kernel code to an EVMS plugin. Mike
> Tran has been keeping up with Neil Brown's latest MD code for 2.5, in an
> attempt to not greatly diverge the code. I believe Mike intends to talk with
> Neil at some point about seeing if there is a way to provide a common set of
> code/services that could be used by both MD and EVMS.

As this is one of the larger complaints about this code that I've heard
from others, I would hope that you put a higher priority on it.

Based on these issues (cluster code, stuff not converted for 2.5, md
duplication) are you all still trying to get this code included in the
main kernel before Oct 20?

Good luck,

greg k-h

2002-10-02 13:33:27

by Kevin Corry

[permalink] [raw]
Subject: Re: [ANNOUNCE] EVMS Release 1.2.0

On Tuesday 01 October 2002 17:17, Greg KH wrote:
> On Tue, Oct 01, 2002 at 04:19:10PM -0500, Kevin Corry wrote:
> > Looking at the 2.5 code, I found one left-over typedef in ldev_mgr.c,
> > which I have just fixed. There are some in the cluster plugin (evms_ecr.c
> > and evms_ecr.h), but at the moment that is just a proposed clustering
> > interface, since there is no actual cluster support yet. It is likely
> > those files will change as the clustering support is added, so they will
> > get cleaned up along the way.
>
> Ah, as I did not know this about the clustering support, I didn't know
> that this code was not cleaned up yet, sorry.

Unfortunately, the clustering support will not be added before the end of
Oct. I may just remove those two files from the tree for the time being to
keep things clean, since I've already disabled the option to build them.

> > The rest of the typedef's I'm seeing are all in the OS/2 and S/390
> > plugins, which as I mentioned in the first announcement haven't been
> > ported to 2.5 yet, and thus haven't gone through any cleanup. When those
> > get ported to 2.5, I'll make sure they are cleaned up.
>
> Any reason not to also clean them up for 2.4? :)

We've tried to clean up both the 2.4 and 2.5 trees. However, since we are
only intending on submitting the code for 2.5, that has been our priority.

The S/390 plugin should be easy to clean up and port to 2.5, and I've already
made an initial attempt at it. However, I've been told that 2.5 may not be
able to compile and/or run on S/390, so testing that plugin may prove to be
difficult. If anyone has an tips (or just a URL) on running 2.5 on S/390,
please let us know.

> > As for improper variable names, can you give me a better idea of where
> > you are seeing them? Any specific examples?
>
> Outside of the clustering and OS/2 and S/390 code, nothing jumps out at
> me, sorry. I do see some strange formatting in a few files
> (AIXlvm_vge.c is an example) where you are mixing tabs and spaces.
>
> Also, for the code sections like:
> +#ifdef EVMS_DEBUG
> + LOG_DEBUG(" read_aix Mirror_Copies:%d\n",volume->mirror_copies);
> +#endif
>
> You might just want to create another LOG_* type macro to get rid of all
> of these instances of #ifdef in the code.

Yeah, the AIX plugin apparently still needs some work. Those #ifdef
EVMS_DEBUG statments can probably just be thrown out. We'll get AIX taken
care of this week.

> > > Also, is there any documentation on why the md code was reimplemented
> > > within evms, instead of using the existing kernel code?
> >
> > It had to be reimplemented in order to fit into the plugin model in EVMS.
> > We had many requests from our users about a year ago to support the MD
> > metadata, so we added it by porting the existing MD kernel code to an
> > EVMS plugin. Mike Tran has been keeping up with Neil Brown's latest MD
> > code for 2.5, in an attempt to not greatly diverge the code. I believe
> > Mike intends to talk with Neil at some point about seeing if there is a
> > way to provide a common set of code/services that could be used by both
> > MD and EVMS.
>
> As this is one of the larger complaints about this code that I've heard
> from others, I would hope that you put a higher priority on it.

We will.

> Based on these issues (cluster code, stuff not converted for 2.5, md
> duplication) are you all still trying to get this code included in the
> main kernel before Oct 20?

That's the plan. As I said, the cluster code won't be ready, and may be
removed from the tree. I'm going to try to get the last two plugins
converted over this week. The MD issues will be addressed.

Thank you for your feedback. If you see any other immediate issues, please
let us know.

--
Kevin Corry
[email protected]
http://evms.sourceforge.net/