freebsd-skq/sys/geom
Attilio Rao 71a19bdc64 Commit the support for removing cpumask_t and replacing it directly with
cpuset_t objects.
That is going to offer the underlying support for a simple bump of
MAXCPU and then support for number of cpus > 32 (as it is today).

Right now, cpumask_t is an int, 32 bits on all our supported architecture.
cpumask_t on the other side is implemented as an array of longs, and
easilly extendible by definition.

The architectures touched by this commit are the following:
- amd64
- i386
- pc98
- arm
- ia64
- XEN

while the others are still missing.
Userland is believed to be fully converted with the changes contained
here.

Some technical notes:
- This commit may be considered an ABI nop for all the architectures
  different from amd64 and ia64 (and sparc64 in the future)
- per-cpu members, which are now converted to cpuset_t, needs to be
  accessed avoiding migration, because the size of cpuset_t should be
  considered unknown
- size of cpuset_t objects is different from kernel and userland (this is
  primirally done in order to leave some more space in userland to cope
  with KBI extensions). If you need to access kernel cpuset_t from the
  userland please refer to example in this patch on how to do that
  correctly (kgdb may be a good source, for example).
- Support for other architectures is going to be added soon
- Only MAXCPU for amd64 is bumped now

The patch has been tested by sbruno and Nicholas Esborn on opteron
4 x 12 pack CPUs. More testing on big SMP is expected to came soon.
pluknet tested the patch with his 8-ways on both amd64 and i386.

Tested by:	pluknet, sbruno, gianni, Nicholas Esborn
Reviewed by:	jeff, jhb, sbruno
2011-05-05 14:39:14 +00:00
..
bde Add some FEATURE macros for various GEOM classes. 2011-02-25 10:24:35 +00:00
cache Remove unneeded checks, g_new_xxx functions can not fail. 2011-05-04 17:37:37 +00:00
concat Remove "for a moment" assignment. struct g_geom zeroed when allocated. 2011-05-04 17:56:53 +00:00
eli Commit the support for removing cpumask_t and replacing it directly with 2011-05-05 14:39:14 +00:00
gate GEOM has an internal mechanism to deal with ENOMEM errors returned via 2011-04-02 06:56:06 +00:00
journal Removed KASSERT, g_new_providerf() can not fail. 2011-05-04 18:06:40 +00:00
label When checking existence of providers skip those which are orphaned. 2011-05-04 12:59:11 +00:00
linux_lvm Add some FEATURE macros for various GEOM classes. 2011-02-25 10:24:35 +00:00
mirror Implement relaxed comparision for hardcoded provider names to make it 2011-04-27 00:10:26 +00:00
mountver Remove unneeded code. 2011-05-04 18:17:21 +00:00
multipath Remove unneeded code. 2011-05-04 18:26:45 +00:00
nop Remove unneeded checks, g_new_xxx functions can not return NULL. 2011-03-31 06:30:59 +00:00
part Remove an incorrect be16toh() that prevented geom_part_apm from working on 2011-04-15 12:32:52 +00:00
raid Reduce geom_raid log verbosity. 2011-04-18 16:15:59 +00:00
raid3 Implement relaxed comparision for hardcoded provider names to make it 2011-04-27 00:10:26 +00:00
sched Remove unneeded code. 2011-05-04 18:41:26 +00:00
shsec Remove "for a moment" assignment. struct g_geom zeroed when allocated. 2011-05-04 17:56:53 +00:00
stripe Remove "for a moment" assignment. struct g_geom zeroed when allocated. 2011-05-04 17:56:53 +00:00
uzip Add some FEATURE macros for various GEOM classes. 2011-02-25 10:24:35 +00:00
vinum - Check flag with the bitwise operator, not the logical operator. 2010-10-01 06:12:13 +00:00
virstor Implement relaxed comparision for hardcoded provider names to make it 2011-04-27 00:10:26 +00:00
zero In g_zero_destroy_geom(), return 0 instead of EBUSY in the success case. 2010-05-10 19:08:53 +00:00
geom_aes.c
geom_bsd_enc.c
geom_bsd.c Add some FEATURE macros for various GEOM classes. 2011-02-25 10:24:35 +00:00
geom_ccd.c - Fix a potential NULL pointer reference. Note that this should not happen in 2008-11-25 20:28:33 +00:00
geom_ctl.c Finish r210923, 210926. Mark some devices as eternal. 2011-01-04 10:59:38 +00:00
geom_ctl.h
geom_dev.c Use make_dev_alias_p() added in r221397 to create alias dev entry. 2011-05-03 19:12:42 +00:00
geom_disk.c MFgraid/head r218212, r218257: 2011-03-24 19:23:42 +00:00
geom_disk.h Add the disk ident and a human-meaningful description (here, the disk model 2011-02-26 14:58:54 +00:00
geom_dump.c Escape characters unsafe for XML output in GEOM class, instance and 2010-03-20 16:16:13 +00:00
geom_event.c Use g_eventlock to protect against losing wakeups in the g_event process 2010-11-22 16:47:53 +00:00
geom_fox.c Add some FEATURE macros for various GEOM classes. 2011-02-25 10:24:35 +00:00
geom_int.h
geom_io.c Correct bioq_disksort so that bioq_insert_tail() offers barrier semantic. 2010-09-02 19:40:28 +00:00
geom_kern.c Use g_eventlock to protect against losing wakeups in the g_event process 2010-11-22 16:47:53 +00:00
geom_map.c Introduce geom_map, a GEOM provider designed for use by 2011-04-12 08:10:25 +00:00
geom_mbr_enc.c
geom_mbr.c Add some FEATURE macros for various GEOM classes. 2011-02-25 10:24:35 +00:00
geom_pc98_enc.c Fix signed vs unsigned warning. 2005-05-01 09:44:50 +00:00
geom_pc98.c Add some FEATURE macros for various GEOM classes. 2011-02-25 10:24:35 +00:00
geom_redboot.c - Give geom_redboot taste of flash/spi. Now there is another provider 2010-02-03 01:12:19 +00:00
geom_slice.c Change the way in which zero stripesize is handled. Instead of reporting 2010-01-06 13:14:37 +00:00
geom_slice.h
geom_subr.c Implement relaxed comparision for hardcoded provider names to make it 2011-04-27 00:10:26 +00:00
geom_sunlabel_enc.c
geom_sunlabel.c Add some FEATURE macros for various GEOM classes. 2011-02-25 10:24:35 +00:00
geom_vfs.c Fix typos - remove duplicate "the". 2011-02-21 09:01:34 +00:00
geom_vfs.h Remove the struct thread unuseful argument from bufobj interface. 2008-10-10 21:23:50 +00:00
geom_vol_ffs.c Add some FEATURE macros for various GEOM classes. 2011-02-25 10:24:35 +00:00
geom.h Implement relaxed comparision for hardcoded provider names to make it 2011-04-27 00:10:26 +00:00
notes