Skip to contentSkip to conversation

EVMS Release 1.2.0

ANNOUNCE Kevin Corry 3 participants 7 messages Sep 30, 2002 – Oct 2, 2002

lore
Share & tools
lore
#0 lore raw

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/

#1 lore raw
Quoted 4 lines · Kevin Corry

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?

Signature · 1 line
Jens Axboe
#2 lore raw
Quoted 32 lines · Jens Axboe
Quoted 4 lines · Kevin Corry

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);
Quoted 3 lines

#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.

Signature · 3 lines
Kevin Corry
[email protected]
http://evms.sourceforge.net/
#3 lore raw
Quoted 2 lines · Kevin Corry

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

#4 lore raw
Quoted 6 lines · Greg KH
Quoted 1 line · Kevin Corry

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?

Quoted 2 lines

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.

Signature · 3 lines
Kevin Corry
[email protected]
http://evms.sourceforge.net/
#5 lore raw
Quoted 7 lines · Kevin Corry

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.

Quoted 4 lines

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? :)

Quoted 2 lines

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.

Quoted 10 lines
Quoted 2 lines

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

#6 lore raw
Quoted 10 lines · Greg KH
Quoted 6 lines · Kevin Corry

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.

Quoted 6 lines
Quoted 4 lines

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.

Quoted 12 lines
Quoted 2 lines

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:

(quoted diff) +3 -0
+#ifdef EVMS_DEBUG
+       LOG_DEBUG(" read_aix Mirror_Copies:%d\n",volume->mirror_copies);
+#endif
Quoted 2 lines

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.

Quoted 12 lines
Quoted 11 lines
Quoted 2 lines

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.

Quoted 2 lines

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.

Quoted 3 lines

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.

Signature · 3 lines
Kevin Corry
[email protected]
http://evms.sourceforge.net/