[Drbd-dev] Compatibility with 2.6.30 and current git

Lars Ellenberg lars.ellenberg at linbit.com
Fri Jun 19 18:01:06 CEST 2009

On Fri, Jun 19, 2009 at 04:39:11PM +0200, Ante Karamatić wrote:
> Hi
> I've mentioned this during Ubuntu 8.10 time frame, but nothing much has
> changed since then.
> Looking at linux/drbd.h, there's this part:
> #ifndef CN_IDX_DRBD
> # define CN_IDX_DRBD                    0x4
> /* Ubuntu "intrepid ibex" release defined CN_IDX_DRBD as 0x6 */
> #endif
> Ubuntu defined CN_IDX_DRBD as 0x6 cause 0x4 was taken by vesa
> framebuffer device. Linux kernels 2.6.30 and latest git has both 0x4 and
> 0x6 taken by other modules (include/linux/connector.h):
> #define CN_IDX_V86D			0x4
> #define CN_DST_IDX			0x6
> These IDs should be unique (hence the name 'Process Events connector
> unique ids'). If you want 2.6.30 compatibility (at least), change it to
> 0x7. That one is free. But keep an eye on it for 2.6.31. So, something
> like this:

the userland needs to be backwards compatible,
and must be able to find the connector index used by the kernel module.

there is now a module parameter cn_idx,
which shows up in /sys/modules/drbd/parameters/cn_idx,
so the userland finds it.
you can set it to whatever you want.
if not set, it defaults to what old drbd userland expected.
and when drbd tries to register that connector index,
and it fails, it will simply add 6977, and try again.
it tries 10 times.

> In current state, if vesa frame buffer module is loaded, drbd won't
> work.  Module will load, but userspace tools won't be able to connect
> to it - they'll be connecting to frame buffer :)

get your facts straight.

: Lars Ellenberg
: LINBIT | Your Way to High Availability
: DRBD/HA support and consulting http://www.linbit.com

DRBD® and LINBIT® are registered trademarks of LINBIT, Austria.

More information about the drbd-dev mailing list