/srv/irclogs.ubuntu.com/2006/07/21/#ubuntu-kernel.txt

kylemBenC, feel free to git pull hera.kernel.org:/pub/scm/linux/kernel/git/kyle/ubuntu-hppa.git branch master.12:31
kylemi've revvi've reverted the async scsi stuff which should help.12:31
=== roh [n=roh@yamato.hyte.de] has joined #ubuntu-kernel
KeybukBenC: around?02:09
=== zul [n=chuck@ubuntu/member/zul] has joined #ubuntu-kernel
zulBenC: http://70.29.57.2/ubuntu/xen/xen-naming.patch it only touches the xen bits03:06
BenCKeybuk: yeah03:13
BenCzul: ok03:13
zulsweeeet...ill upload a new one tomorrow03:14
=== nigel_c [n=nigel@nigel.suspend2.net] has joined #ubuntu-kernel
BenCzul: I'll upload kernel-package03:16
BenCI need my changes in it03:16
zulok sounds good03:16
zulim just rewriting the rules file so it uses kernel-package03:17
KeybukBenC: can we get linux/linkage.h back? :)04:00
Keybukhttp://librarian.launchpad.net/3507234/buildlog_ubuntu-edgy-i386.sysklogd_1.4.1-18ubuntu2_FAILEDTOBUILD.txt.gz04:00
=== johanbr [n=j@d154-20-189-105.bchsia.telus.net] has joined #ubuntu-kernel
fabbionemorning04:23
fabbioneBenC: ping?04:47
BenCKeybuk: ok05:55
BenCfabbione: hey05:55
fabbioneBenC: yo06:15
fabbioneBenC: do you feel like looking into the cluster stuff or is it too late for you?06:15
BenCfabbione: sorry, too much going on for the past hour or so, and I'm beat07:27
fabbioneBenC: no problem.. 07:29
=== johanbr [n=j@d154-20-189-105.bchsia.telus.net] has joined #ubuntu-kernel
=== nigel_c [n=nigel@nigel.suspend2.net] has joined #ubuntu-kernel
=== lloydinho [n=andreas@rosinante.egmont-kol.dk] has joined #ubuntu-kernel
=== pmjdebruijn [n=pmjdebru@pmjdebruijn.xs4all.nl] has joined #ubuntu-kernel
=== johanbr [n=j@d154-20-189-105.bchsia.telus.net] has joined #ubuntu-kernel
=== pmjdebruijn [n=pmjdebru@pmjdebruijn.xs4all.nl] has joined #ubuntu-kernel
=== johanbr [n=j@d154-20-189-105.bchsia.telus.net] has joined #ubuntu-kernel
=== doko [n=doko@dslb-088-073-104-250.pools.arcor-ip.net] has joined #ubuntu-kernel
=== nigel_c [n=nigel@nigel.suspend2.net] has joined #ubuntu-kernel
pmjdebruijnhttp://paste.ubuntu-nl.org/1851112:35
pmjdebruijndo I have to be root?12:36
=== zul [n=chuck@CPE0006258ec6c1-CM000a73655d0e.cpe.net.cable.rogers.com] has joined #ubuntu-kernel
=== ajmitch [n=ajmitch@ubuntu/member/ajmitch] has joined #ubuntu-kernel
=== fs [i=fs@213.178.77.98] has joined #ubuntu-kernel
fabbioneBenC: when you wake up can you please pull from my edgy branch?02:07
fabbioneBenC: i have 2/3 fixes for GFS and GFS202:07
fabbionewe are only missing one from upstream now that i have no idea what to do about02:07
fabbioneand if you can manage to upload before you leave for holidays i can get the rh-c-s binaries to build too02:07
=== Traxer|off [i=traxer@shell6.powershells.de] has joined #ubuntu-kernel
=== zul [n=chuck@ubuntu/member/zul] has joined #ubuntu-kernel
=== kylem [n=kyle@cabal.ca] has joined #ubuntu-kernel
zulhey02:13
zulBenC: so when are you going to upload a new kernel-package?02:15
fabbionei hope he is going to do everything today before he goes in holidays02:16
fabbioneotherwise sparc is borked for headers and so are other arches :)02:16
fabbioneand packages02:16
fabbioneand ...02:16
fabbionea..02:16
fabbione..02:16
fabbione.02:16
zulwhen does his holidays start?02:16
fabbioneend of his friday i guess02:17
zuloh..02:19
=== nigel_c [n=nigel@nigel.suspend2.net] has joined #ubuntu-kernel
=== thom [n=thom@amnesiac.heapspace.net] has joined #ubuntu-kernel
=== tuxmaniac [n=aanjhan@unaffiliated/tuxmaniac] has joined #ubuntu-kernel
=== nigel_c [n=nigel@nigel.suspend2.net] has joined #ubuntu-kernel
=== ivoks [n=ivoks@ubuntu/member/ivoks] has joined #ubuntu-kernel
=== Keybuk [n=scott@quest.netsplit.com] has joined #ubuntu-kernel
=== fabbione [i=fabbione@gordian.fabbione.net] has joined #ubuntu-kernel
BenCfabbione: actually, I'll be around till Sunday afternoon04:45
BenCbut I am planning on an upload tonight04:45
fabbioneBenC: well it's weekend :)04:45
zulnot it isnt :)04:45
BenCkernel-package + grub + linux04:46
fabbioneBenC: btw the OOM killer doesn't work. i just found out by mistake04:46
BenCnot for me yet :)04:46
=== Kamion [n=cjwatson@83-216-156-196.colinw664.adsl.metronet.co.uk] has joined #ubuntu-kernel
Keybukjust trying to find some documentation on the suspend format04:59
Kamionso, the swsusp format appears to be:04:59
KamionPAGE_SIZE with 10 bytes at the end reading "S1SUSPEND\0"05:00
Kamionthen a struct swsusp_info05:00
Keybukit replaces the entire swap partition?05:00
Kamionthink so, S1SUSPEND goes in the same place as SWAP-SPACE or SWAPSPACE2 AFAICT05:00
Kamionsee power/swsusp.c:mark_swapfiles05:01
Kamionnow, a struct swsusp_info is { struct new_utsname; u32; unsigned long; int; unsigned long; unsigned long }05:01
fabbioneBenC, Keybuk: well something is stored in md sb as i pasted on -devel05:01
Keybukfabbione: can we not have this conversation right now, please05:02
Kamionthe corresponding bit of a swap partition is { unsigned int version; unsigned int last_page; unsigned int nr_badpages; unsigned char uuid[16] ; char volume_name[16] ; ... }05:02
Keybukright05:03
Keybukthe swap partition is at the start of the page05:03
Keybukuh05:03
Keybukswap partition header05:03
Keybukand the SWAPSPACE2 bit is at the end05:03
Kamionthe start of a swap partition is a char[1024]  to allow room for boot images05:04
Kamionthe SWAPSPACE2 is right at the end of that05:04
Keybukright05:04
Kamionand the other fields like uuid and stuff immediately follow05:04
Keybukuh, no05:04
Keybukwrong05:04
Keybukthe start of a swap partition is a char[1024] 05:04
KeybukTHEN the header struct05:04
Keybukthe SWAPSPACE2 is definitely at the very end of the page05:05
Keybukit reads 0+PAGE_SIZE_1005:05
Keybuk0+PAGE_SIZE-1005:05
Keybukeven05:05
Kamionoh, sorry, you're right05:05
Kamionpage size confusion on my part05:05
Keybukvolumne_name appears to be the "label"05:05
Keybukand uuid is obviously the UUID05:06
Kamionyes, it is05:06
Keybuk(though mkswap doesn't have an option to set the UUID)05:06
Kamionit generates it automatically05:06
Keybukright05:06
Keybukhow come the installer didn't do that?  custom mkswap?05:06
Kamionbusybox mkswap, yes05:06
KamionI'm pulling the uuid changes into that05:06
Keybukd-i is more NIH than I am :)05:06
Kamion:)05:06
thomKeybuk: keep dreaming05:06
Keybukok05:07
Keybuknow the swsusp header goes at the END of the page too, by the looks of it05:07
fabbioneKeybuk: sure we can wait after stuff is broken and data lost.. no problem at all05:07
Keybukit has a reserved block on the front of PAGE_SIZE - 20 - sizeof(swp_entry_t)05:07
Keybukfabbione: dude, if you're not going to be helpful and go find out whether the RAID stuff actually does hardcode sd* names in the block somewhere, please be quiet05:08
fabbioneKeybuk: i told you before what is hardcoded. major and minors05:08
Kamionhe said on #ubuntu-devel that it hardcodes major numbers in the block05:08
Keybukfabbione: ok, then it's broken05:09
Kamionstill, it might be helpful to tackle one problem at a time05:09
Keybukand probably broken today, in fact05:09
Keybukexplains a few bugs05:09
Keybukback to swap05:09
fabbioneKeybuk: well then the transition need to take that into account. You can't just break stuff like this05:09
Keybukfabbione: dude, it's already broken05:10
Keybukdapper won't guarantee ordering of multiple scsi devices05:10
Keybukneither did breezy05:10
Keybukthis is us trying to FIX that05:10
fabbioneok don't break my raid.. i don't care about others.05:11
zulheh05:12
Keybukstatic struct swsusp_header {05:14
Keybuk        char reserved[PAGE_SIZE - 20 - sizeof(swp_entry_t)] ;05:14
Keybuk        swp_entry_t image;05:14
Keybuk        char    orig_sig[10] ;05:14
Keybuk        char    sig[10] ;05:14
Keybuk} __attribute__((packed, aligned(PAGE_SIZE))) swsusp_header;05:14
KeybukKamion: ^ so it appears that the swsusp header contains a copy of the original swp_entry_t05:14
Keybukso a swsusp first page looks like "Blah blah blah ... swp_entry_t SWAPSPACE2 S1SUSPEND"05:15
=== BenC [n=bcollins@debian/developer/bcollins] has joined #ubuntu-kernel
Kamionoh yes, good point, I hadn't got round to figuring out what orig_sig was05:15
Kamionyeah05:15
BenCok, messing with swap on a running system turns out to be a bad idea05:15
KeybukI'm trying to find the resume code05:16
Keybukto see how it puts it back05:16
KamionBenC: how ba?05:18
Kamiond05:18
BenCKamion: crash with a fsck bad05:19
Kamionyum05:19
KeybukBenC: what did you do?05:19
KeybukKamion: dunno about you, but I haven't found yet where it restores the original swap header05:20
mjg59Kamion: swsusp_check05:20
mjg59Oh, sorry, no, that's only in the failure case05:20
mjg59No, wait, that's right05:21
mjg59               if (!memcmp(SWSUSP_SIG, swsusp_header.sig, 10)) { memcpy(swsusp_header.sig, swsusp_header.orig_sig, 10); /* Reset swap signature now */ error = bio_write_page(0, &swsusp_header);05:21
mjg59Grah, irssi hate05:21
Kamionunintuitive naming, but right05:21
mjg59The original signature is in the swsusp header, so it just copies it back05:21
Kamion"Check for swsusp signature in the resume device <small>and munge it</small>"05:22
Keybukthis is confusing me ... these two bits of code seem to put the swp_entry_t in different places05:22
Keybukoh, grr, swp_entry_t != swap_header05:23
Keybukright05:23
Keybukso swsusp does blat the header of the swap partition05:23
KeybukGO SWSUSP!05:23
Kamionare you sure? it reads the existing contents first05:25
Keybukit does?05:25
KamionI think experimentation might be better than reading the code here05:25
Keybuktbh, I think we just need to test this05:25
Kamion                if ((error = bio_read_page(0, &swsusp_header)))05:25
Kamion                        return error;05:25
Kamion                if (!memcmp(SWSUSP_SIG, swsusp_header.sig, 10)) {05:25
Keybukmjg59: care go guinea pig for us?  you're the one man in the universe whose laptop can suspend and resume <g>05:25
Kamioncan I suspend/resume in vmware, I wonder?05:26
mjg59Wait, what's the problem you're working on here?05:26
BenCKamion: that was just "mkswap -L `uuidgen`", which probably isn't what we wan't anyway05:26
Keybukmjg59: finding swap devices by UUID05:26
Keybukin particular, making sure that the UUID in the swap partition isn't destroyed by suspending05:26
KamionBenC: oh you completely rewrote the swap then - that will have zeroed the existing contents and stuff05:27
KamionI was thinking more of just dd'ing in a UUID05:27
mjg59Ah, right05:27
mjg59Can't right now. Or even this weekend, really...05:27
KamionI'm doing a fresh install in vmware at the moment; if swsusp will work there then I'll try it05:27
BenCKamion: from what I remember, it works05:28
mjg59There's no reason for swsusp to blat the uuid, so yeah, fixing it so it doesn't should be fine05:28
Kamionmjg59: however, if it does in the current kernel, we're already screwed05:28
Kamionsince this is for dapper->edgy upgrades05:29
Kamionwe're pretty much stuck with whatever the dapper kernel does05:29
fabbionewell you can still mount / by uuid and write these info somewhere on the filesystem (for the swap) perhaps?05:30
fabbionesomething like:05:30
fabbionehash the last 4K of the swap05:30
fabbionereboot05:30
fabbionecheck for swap partitions05:30
fabbionerehash to figure where the partition is gone05:30
fabbionetake action?05:30
mjg59Oh, the risk that they'll upgrade then suspend and lose the uuid?05:31
fabbionewouldn't that happen even booting on another linux distro that does mkswap at boot?05:32
Kamionfabbione: yeah, sounds possible, but if we can do it all directly on upgrade then that's obviously better05:32
Kamionfabbione: do those exist?05:32
fabbioneKamion: i don't know.. i haven't used any distro != Debian || Ubuntu for the last 4 years05:34
mjg59Sharing swap isn't a supported configuration, is it?05:34
KamionI don't think there's much we can do about that case05:34
mjg59Given that we suspend into it05:34
fabbionei think we could use partition roundings05:34
fabbionethere is always some space in between partitions05:34
Kamionmjg59: there exist people who don't suspend to disk :-)05:34
Kamionfor them, it will work apart from this theoretical problem05:35
fabbionewe might be able to reuse it05:35
fabbionelike the block immediatly after the end of the swap05:35
fabbionei doubt it's the start of the next partition (needs to be checked)05:35
KamionI'm much more comfortable sticking to the UUID if we can05:35
fabbioneif that space is really empty, we can make use of it05:35
Kamionit's simpler and supported by existing tools05:35
Kamionand the failure mode with swap is not as bad as the failure mode with other partitions05:36
mjg59Kamion: Sure, but it's enabled by default. The supported install configuration is incompatible with shared swap.05:36
fabbioneKamion: yes so am I but i am considering alternatives05:36
Kamionif it fails, people don't have swap, big deal, they can fix it once they've booted05:36
Kamionmjg59: only if you *actually suspend*05:36
Kamionwhich desktop users will to a good first approximation never do05:36
Kamionmjg59: yes, I agree that for laptop users it can't be supported05:37
Kamionbut we've never explicitly advertised it as unsupported either, and for desktop users it will always have worked well05:37
Keybukecho -n "LABEL" | dd conv=trunc of=SWAP obs=1 seek=105205:37
Keybukfor the adventurous :p05:37
Kamionlabel, not uuid?05:37
=== Kamion would prefer uuid ...
=== fabbione goes to help wife
Keybukuuid is harder to encode for "testing whether one can mangle an active swap partition" purposes05:38
Keybukif you want to write the uuid, just write to 1036 instead05:38
mjg59Kamion: I think if there's a feature that's enabled by default that will destroy data in certain configurations, either (a) that feature shouldn't be enabled or (b) that configuration shouldn't be supported05:41
Kamionwhat does "be supported" mean though?05:41
mjg59"If you do this and stuff breaks, it's your problem not ours"05:41
Kamionin practice, since we've never advertised it as unsupported, it appears to mean "we will feel free to fuck your system without prior warning if you didn't realise you couldn't do that"05:41
Kamionwhich is a bit harsh05:41
mjg59Well, in this case the system fucking would be limited to your swap potentially vanishing05:42
Kamionright, so it's not too bad - but I'm just very very uncomfortable with dismissing problems as "unsupported" when we never warned people about them05:42
mjg59I think when we're faced with a choice of "effectively impossible" or "may irritate someone who ought to be smart enough to fix it", we're effectively obliged to choose the latter and document it05:43
mjg59Doing impossible things is outside our remit, no matter how happy it may make users :)05:43
Kamionright, just saying that the "and document it" is not optional, and ideally needs to be in-their-face during the upgrade05:46
Keybukuuidgen | perl -ne 's/-//g;print "%c",hex %1 while(/(..)/g)' | dd conv=notrunc of=/dev/hda5 obs=1 seek=103605:47
Kamions/print/printf05:48
Keybukyes, sorry, mis-typed into IRC05:48
Kamionand s/%1/\$1/05:48
Keybukthat appears to survive a swapoff/swapon05:49
Keybukand it survives a reboot05:53
Keybukok, so where we have an active (or inactive) swap partition without a UUID, we can modify it to include one without disturbing the running system05:54
Keybukthat check should include an "is a swap partition" check, obviously05:54
Keybukthat leaves us with05:54
Keybuk- v0 swap partitions  (no UUID)05:54
Keybuk- partitions with a resume image05:54
Keybukwhat do we do about those?05:55
mjg59They haven't been supprted since 2.2, have they?05:55
mjg59v0 swap partitions, that is05:56
Keybukdunno, the documentation just implies that they were the only version supposrted before 2.205:57
Keybukright05:57
Keybukthey're not supported ;)05:57
Keybukyou can't swapon a v0 partition05:57
Keybukok, so that just leaves us with partitions with a resume image05:58
Keybuk(and just thought, how do we find the resume image? :p)05:58
mjg59Is there space in the header for a UUID?05:58
mjg59Ha. That's a fun one.05:58
Keybukmjg59: which header?05:58
mjg59The swsusp header.05:58
Keybukif swsusp includes the original swap header, we could just give resume= the smarts to find that05:58
mjg59We need to deal with the situation where resume fails and swsusp doesn't redo the header05:59
Keybukbtw, any particular reason resume= is necessary?  couldn't one just iterate /proc/partitions and look for a S1SUSPEND partition?05:59
mjg59No, because you might have multiple OSs installed05:59
Keybukdoes swsusp do that often?05:59
Keybukthat'd leave them with dead swap anyway, no?05:59
mjg59swap wouldn't necessarily be shared05:59
mjg59If you don't mount filesystems between them, that's a prefectly reasonable configuration06:00
Keybukso the choice is what to do when we find them06:00
mjg59Check whether they have the correct uuid and resume them?06:02
Keybukright, I mean at upgrade time06:05
Keybuksomeone upgrades from dapper to edgy, and we find that something listed in /etc/fstab as a swap partition to be mounted on boot is not active and contains a suspend image06:06
KeybukI guess this is easy, we write a UUID into the right bit of the image06:06
mjg59They're fucked anyway, presumably?06:06
Keybukand adjust the resume= so whenever that does get resumed, it will work06:06
mjg59Or do we support booting edgy with a dapper kernel?06:06
Keybukwe don't "support" it06:07
KeybukI don't see any reason it wouldn't boot though06:07
mjg59Ok06:07
Keybukdapper->edgy isn't that large a jump06:07
KeybukKamion: do you concur?06:07
mjg59dapper kernel won't write a uuid into the suspended image06:07
Keybukmjg59: ?06:07
mjg59I don't quite understand the situation you're suggesting06:08
mjg59They're on dapper. They upgrade to edgy. They suspend?06:08
mjg59Also, we don't have a resume=06:08
mjg59That information lives in the initramfs06:08
Keybukno06:10
Keybukthey're on dapper06:10
Keybukthey have a swap partition listed in /etc/fstab06:10
Keybukthat swap partition is not active, and contains an S1SUSPEND image06:10
Keybukthey upgrade to edgy06:10
Keybukduring the upgrade, while still in dapper06:10
mjg59Whose suspended image is it?06:10
mjg59Does it belong to the dapper system?06:11
Keybukcan we tell that?06:11
mjg59I don't /think/ you can ever get into that situation06:11
BenCif it's in /etc/fstab, IMO, it belongs to dapper06:11
Keybukmjg59: failed resume?06:11
mjg59If it's a dapper image (a) it should have been mkswapped during resume, and (b) if it's resumed now it'll cause massive filesystem corruption06:12
BenCKeybuk: if so, then the failure is too late for recovery06:12
Keybukmjg59: mkswapped during resume?06:12
mjg59Keybuk: The failed resume, sorry06:12
Keybukdo you mean "mkswap run" or do you mean "the original swap header restored" ?06:12
mjg59Though it's possible that that bug never got fixed06:12
mjg59Failed resume should result in the suspended image being turned back into swap06:12
Keybukright, but _NOT_ using mkswap, right?06:13
mjg59We may use mkswap at the moment06:13
Keybukdo you know where I can find that out?06:13
mjg59Though I think the kernel actually fixes it06:13
mjg59Actually, yes06:13
mjg59swsusp_check will rewrite it06:13
Keybukok, I can't find mkswap anywhere in the initramfs or boot scripts06:13
mjg59So original swap header restored, I believe06:13
Keybukok06:14
Keybukso we found a swap partition in /etc/fstab that contains a resume image06:14
Keybukwhat we do?06:14
BenCmkswap06:14
mjg59Yes06:14
BenConce they boot ignoring that resume image, the resume image is useless06:15
mjg59Allowing that image to be restored would be actively dangerous06:15
BenCexactly06:15
Keybukok, that's fine06:16
Keybuknow, we do need to deal with resume=06:16
mjg59We don't use resume=06:16
Keybukwe don't?  how do we resume from hibernate?06:16
Keybukcontext change, btw06:16
Keybukwe've upgraded the system, it's now running edgy06:16
Keybukthey want to suspend and resume06:16
Keybukresume=/dev/hda5 ain't gonna work <g>06:17
mjg59We have a RESUME= statement in /etc/initramfs-tools/conf.d/resume06:17
mjg59Initramfs generates a major and minor from that and echoes them into /sys/power/resume06:17
Keybukright06:17
Keybukso we need to extend initramfs to support RESUME/resume=UUID=...06:17
Keybukand have it iterate /proc/partitions, look for a hibernate image on a swap partition with the given UUID06:18
mjg59Please don't use "rescue=", that's a separate codepath06:18
Keybukeh?06:18
mjg59Uh, "resume="06:18
mjg59Mentioning it confuses the situation06:18
Keybukresume= looks like the same code path to me06:18
Keybukexport resume=${RESUME}06:18
mjg59Indirectly06:18
Keybuk        resume=*)06:18
Keybuk                resume=${x#resume=}06:18
Keybuk                ;;06:18
KeybukRESUME is otherwise entirely unmentioned in the initramfs code06:19
mjg59The traditional semantics for "resume=" is that it's parsed by the kernel06:19
Keybukis it still parsed by the kernel?06:19
mjg59In our case, possibly not, but we never write any configuration that uses it06:19
Keybukright06:19
Keybukdoes RESUME=UUID=... sound insane?06:20
mjg59No, that's fine06:20
mjg59We change /etc/initramfs-tools/conf.d/resume06:20
mjg59Ideally before and after point to the same partition06:20
mjg59Then it just needs a small amount of work in initramfs-tools06:20
Keybuk"before and after point" ?06:20
mjg59The partition pointed at before the rewrite should be the same as the one pointed at afterwards06:21
Keybukright06:21
BenCthat's ideally what we're shooting for :)06:21
Keybukthe difference is before it'd be /dev/?d?? but after would be UUID=...06:21
mjg59Yes06:21
Keybukwith the advantage that after, it'll work even if the disk jumped from hda5 to sdb5 :p06:22
BenCyou wouldn't want to just to /dev/disk/by-uuid/* ?06:22
BenCless code06:22
mjg59Keybuk: Not quite06:22
KeybukBenC: /dev/disk/by-uuid doesn't (yet) know about extracting a UUID from a suspended image06:22
BenCactually, no code changes if you do that06:22
KeybukBenC: we use UUID=* elsewhere for consistency06:23
BenCKeybul: it's different than a swap image?06:23
KeybukBenC: dunno yet06:23
Keybukstill waiting for Kamion to come back from vmware06:23
mjg59Keybuk: It won't handle that if the change happens over a suspend/resume cycle06:23
BenCok06:23
mjg59But that's a massively pathological case, so06:23
Keybukmjg59: can the change happen over a suspend/resume cycle?06:23
mjg59If they move disks around, yes06:23
mjg59It'll deal fine with the drivers/ide -> libata conversion06:24
BenCif they resumed before upgrade, changes are they did it from a dapper kernel06:24
Keybukuh, doesn't this change mean they *CAN* move disks around between a suspend and resume, and have everything just work?06:24
BenCif they suspend again before rebooting to edgy, then that would break06:24
BenCI think06:24
Keybukbecause things are mounted by UUID, the physical location or kernel-assigned name of the disk won't matter06:24
mjg59Keybuk: No, because kernel restores with old hardware knowledge06:24
BenCis there any way we can disable suspend functionality until they reboot after this change?06:25
mjg59So you'll resume, and the kernel will think "/ is on the first disk connected to this controller" when in fact it's now on the second06:25
Keybukmjg59: have you had any cases of that so far?06:25
mjg59Keybuk: Right now it won't even attempt to resume. With this change it'll attempt to resume and then blow up06:25
Keybukdepends how much they changed06:26
Keybuktbh, I suspect this is a "WELL DON'T DO THAT THEN!"06:26
mjg59You can't change hardware config and expect a resume to work06:26
mjg59(sadly)06:26
Keybukthough people could get heavily bitten if the resume boot is subtly different to the suspend boot06:26
Keybukie. your raid controller takes an extra second to start up06:26
mjg59There's a standard for a BIOS flag that gets set if the BIOS detects a changed config06:26
mjg59We should probably check that06:26
Keybukso your scsi controller wins06:26
mjg59Oh, that's fine06:27
Keybukbut I suspect that's fine, actually06:27
Keybukbecause your "first disk in this controller" info is still valid06:27
mjg59As long as the hardware is the same, enumeration order is unimportant06:27
Keybukright06:27
Keybukthis is, in fact, only if you add new duplicate controllers of a given type06:27
mjg59The entire running kernel state gets overwritten by the old one06:27
Keybukor swap the drives around on a particular controller06:27
mjg59Or move PCI slots06:27
KeybukI guess06:27
Keybukbut that's stupid06:28
mjg59If the device ID changes, things explode06:28
KeybukI'm trying to make sure that sunspots can't break it06:28
mjg59But PCI device enumeration isn't dependent on startup speed - disk enumeration order may be06:28
Keybukie. udev loading modules in a different order06:28
BenCI think changing hardware configuration in the middle of an upgrade should just be strictly forbidden :)06:28
mjg59Keybuk: Anyway, I need to pack06:28
Keybukpack?06:28
Keybukfor?06:28
mjg59Keybuk: Are you coming up this evening, or will I see you tomorrow?06:29
KeybukI may be up this evening06:29
Keybukdepends when David turns up06:29
mjg59Ok06:29
mjg59We're leaving in about an hour06:29
Keybukcool06:29
KeybukBenC: does vmware work on an amd64?06:29
BenCdoes on mine06:30
Keybukok, let me install it for testing too06:30
Keybukabout time I did06:30
KeybukI'm bored of screwing up chroots <g>06:31
kylemBenC, http://www.kernel.org/git/?p=linux/kernel/git/kyle/ubuntu-hppa.git;a=summary <- please look to make sure i cleaned up tulip properly. 06:31
BenCkylem: ok06:31
KeybukBenC: right, if I modify vol_id as necessary to support extracting the UUID out of a swap partition containing a S1SUSPEND image ...06:31
BenCkylem: btw, I think I narrowed a500 boot failure down to something with CONFIG_GSC being enabled06:31
Keybuk(this is a patch upstream will accept with a "sick... but YES!")06:32
Keybukthen we can treat UUID=* as an alias for /dev/disk/by-uuid/*06:32
Keybukand could do RESUME=LABEL=SWAP with the same code <g>06:32
kylemBenC, ooh. neat.06:32
kylemBenC, i'll be able to work sunday, still at OLS this week.06:32
kylemsounds like it could be that CONFIG_GSC is trying to register a console first.06:33
BenCwhich console should a500 be using, PDC, right?06:33
BenCwith GSC, it was using SERIAL_MUX or something like that06:34
=== ubuntulog [i=ubuntulo@195.22.207.161] has joined #ubuntu-kernel
=== Topic for #ubuntu-kernel: Ubuntu kernel development discussion ONLY | Kernel GIT tree info (updated): https://wiki.ubuntu.com/KernelGitGuide | 2.6.17-5.14 uploaded, if this one's broke, you can deal with it :P | Daily kernel builds (for debug and testing purposes only) http://people.ubuntu.com/~bcollins/kernels-daily/ | Kernel Wiki: https://wiki.ubuntu.com/CategoryKernel
=== Topic (#ubuntu-kernel): set by BenC at Mon Jul 17 19:09:06 2006
=== doko [n=doko@88.73.104.250] has joined #ubuntu-kernel
=== _human_blip_ [n=mike@220.157.65.29] has joined #ubuntu-kernel
=== fabbione [i=fabbione@195.22.207.162] has joined #ubuntu-kernel
=== Keybuk [n=scott@quest.netsplit.com] has joined #ubuntu-kernel
Keybukouch06:35
KeybukLILO!06:35
=== #ubuntu-kernel [freenode-info] why register and identify? your IRC nick is how people know you. http://freenode.net/faq.shtml#nicksetup
=== Keybuk wonders whether swapon -a can understand UUID= and LABEL=
Keybukyes, it can06:36
=== lamont [n=lamont@mib.fc.hp.com] has joined #ubuntu-kernel
=== ubuntulog [i=ubuntulo@trider-g7.fabbione.net] has joined #ubuntu-kernel
=== Topic for #ubuntu-kernel: Ubuntu kernel development discussion ONLY | Kernel GIT tree info (updated): https://wiki.ubuntu.com/KernelGitGuide | 2.6.17-5.14 uploaded, if this one's broke, you can deal with it :P | Daily kernel builds (for debug and testing purposes only) http://people.ubuntu.com/~bcollins/kernels-daily/ | Kernel Wiki: https://wiki.ubuntu.com/CategoryKernel
=== Topic (#ubuntu-kernel): set by BenC at Mon Jul 17 19:09:06 2006
=== _human_blip_ [n=mike@220.157.65.29] has joined #ubuntu-kernel
=== _fs [i=fs@213.178.77.98] has joined #ubuntu-kernel
=== Traxer|off [i=traxer@83.243.46.66] has joined #ubuntu-kernel
=== fabbione [i=fabbione@195.22.207.162] has joined #ubuntu-kernel
=== lamont [n=lamont@15.238.4.198] has joined #ubuntu-kernel
=== JanC [n=janc@lugwv/member/JanC] has joined #ubuntu-kernel
=== lloydinho [n=andreas@rosinante.egmont-kol.dk] has joined #ubuntu-kernel
=== Kamion [n=cjwatson@83-216-156-196.colinw664.adsl.metronet.co.uk] has joined #ubuntu-kernel
=== maswan [i=maswan@kennedy.acc.umu.se] has joined #ubuntu-kernel
=== mjg59 [n=mjg59@cavan.codon.org.uk] has joined #ubuntu-kernel
=== bernard [n=bernard@helicon.ucs.uwa.edu.au] has joined #ubuntu-kernel
=== makx [n=max@213.239.196.228] has joined #ubuntu-kernel
=== ajmitch [n=ajmitch@203.89.166.123] has joined #ubuntu-kernel
=== neuralis [n=krstic@140.247.73.241] has joined #ubuntu-kernel
=== Mithrandir [n=tfheen@81.0.188.99] has joined #ubuntu-kernel
=== thom [n=thom@195.54.228.42] has joined #ubuntu-kernel
=== TheMuso [n=luke@ubuntu/member/themuso] has joined #ubuntu-kernel
=== roh [n=roh@yamato.hyte.de] has joined #ubuntu-kernel
=== kylem [n=kyle@cabal.ca] has joined #ubuntu-kernel
=== crimsun [n=crimsun@dargo.trilug.org] has joined #ubuntu-kernel
KeybukI'm still unsure where the hell this migration code should go06:46
=== airlied [n=airlied@skynet.skynet.ie] has joined #ubuntu-kernel
Keybukit may be true that udev is the right place for it :-/06:48
Keybukwe almost need a sane-linux-system package06:49
Keybukthat the kernel depends on06:49
=== #ubuntu-kernel [freenode-info] if you're at a conference and other people are having trouble connecting, please mention it to staff: http://freenode.net/faq.shtml#gettinghelp
=== lifeless [n=robertc@dsl-116.3.240.220.rns01-kent-syd.dsl.comindico.com.au] has joined #ubuntu-kernel
=== BenC_ [n=bcollins@72.169.114.90] has joined #ubuntu-kernel
=== _fs is now known as fs
BenClinux-image-kdump_2.6.17-5.15_amd64.deb06:58
BenCyummy06:58
zulsweet07:03
=== Starting logfile irclogs/ubuntu-kernel.log
=== ubuntulog [i=ubuntulo@ubuntu/bot/ubuntulog] has joined #ubuntu-kernel
=== Topic for #ubuntu-kernel: Ubuntu kernel development discussion ONLY | Kernel GIT tree info (updated): https://wiki.ubuntu.com/KernelGitGuide | 2.6.17-5.14 uploaded, if this one's broke, you can deal with it :P | Daily kernel builds (for debug and testing purposes only) http://people.ubuntu.com/~bcollins/kernels-daily/ | Kernel Wiki: https://wiki.ubuntu.com/CategoryKernel
=== Topic (#ubuntu-kernel): set by BenC at Mon Jul 17 19:09:06 2006
zulBenC: thanks for the kernel-package upload07:20
BenCnp07:20
zulnow i can finish my rewrite07:21
KamionKeybuk: right, sorry, I was away for a while07:28
KamionI concur with the above plan, I think, as long as tests work07:28
KamionKeybuk: I have the partman-target change (it's tiny), but am holding off on it a while until I have new d-i with the fixed busybox mkswap07:29
KamionI'm writing out just "# /dev/hda1" or whatever above each UUID= line07:29
=== kriebly [n=moho@wisdom.Stanford.EDU] has joined #ubuntu-kernel
=== lifeless [n=robertc@dsl-116.3.240.220.rns01-kent-syd.dsl.comindico.com.au] has joined #ubuntu-kernel
Keybukhttp://people.ubuntu.com/~scott/convert.txt07:47
KeybukKamion: ^ could you take a read through that and check I'm not insane07:47
BenCKeybuk: you don't want to make /dev/* be /dev/[hs] d[a-z] *?07:58
KamionKeybuk: will have to be tomorrow I think, sorry07:59
BenCKeybul: there are some off block storage devices majors that might match, and you probably don't want to mess with them07:59
Kamionthere's stuff like /dev/scd0 which is shoved in by default07:59
Kamionif you have a scsi cdrom during installation07:59
Kamionanyway, guests, gone07:59
BenCprobably just /dev/[hs] d* would be good08:00
BenCthere's one other issue I'm not sure if it was covered08:00
BenCthe issue of a whole block device being used as a partition08:00
BenCdoes by-uuid stuff actually list those?08:01
fabbioneKeybuk: i think you want to be careful about ocfs2|gfs|gfs208:13
fabbioneit is a common misconception that they are network fs08:13
fabbionethey are indeed local fs08:13
fabbionebut they require net to do cluster operations08:13
fabbioneuhe08:13
fabbioneops08:13
fabbioneskip "uhe"08:13
fabbione:)08:13
fabbionei have stuff like /dev/sdXY mounted as ocfs2/gfs2/gfs08:14
fabbioneor hda for the matter08:14
KeybukBenC: should do08:18
Keybukfabbione: we can work those out as we go ... safer not to migrate than migrate incorrectly08:19
fabbioneKeybuk: yes agreed. *IF* i am no father by monday we can try them together and see what's needed08:20
BenCKeybuk: would something like "/dev/* matches, and vol_id says it has a UUID, then convert" be safe?08:20
KeybukBenC: that's what that script does, no?08:21
KeybukI figured that if vol_id thinks it has a uuid, it means we can mount using UUID=, so it's not going to break anything by converting it08:21
BenCKeybuk: I meant without all the catches for fstypes and such08:21
KeybukBenC: possibly ... I didn't want to accidentally find the UUID of a CD in the drive, and hard-code that ;)08:22
Keybukall the tmpfs/network fs stuff is probably not necessary08:22
BenCcd's are noauto, right?08:22
BenCand so are fd's?08:22
Keybukactually ... let's change that -e to a -b08:22
Keybukand then just check for auto/noauto08:23
BenCone last build/boot test, and the kernel is getting uploaded08:23
=== jwest- [n=jwest@83.110.124.122] has joined #ubuntu-kernel
Keybukhttp://people.ubuntu.com/~scott/convert.txt08:32
Keybuk^ ok, so that doesn't check filesystem types08:32
Keybukinstead it's converted if it's a _block device_ in /dev, it's not auto fstype or noauto options, and it has a uuid (or we can generate one)08:32
BenCsweet08:38
BenCthere's one other issue....some people have already been bitten by hd->sd problems with AHCI drivers...08:40
BenCif rootfs conversion fails, can it be cross-referenced with /proc/mounts and updated?08:40
Keybukhow do you mean?08:41
BenCthe ahci drivers have caused some ppl to already get sdX instead of the hdX listed in /etc/fstab grub08:41
BenCso if you check fstab and find /dev/hda1, and it doesn't exist (or worse, is pointing to something else like a CD on another IDE controller), then this gets messed up08:42
BenCso far it's only causing a few ppl to get long boot times waiting for the rootfs08:43
BenCand it's not something I can revert because then other people cannot boot at all (driver fails to attach to IDE controller)08:43
BenCthis is the whole ata_ahci and ide ahci driver problem08:43
Keybukif someone is messed up by this now, they can't be automatically converted08:44
Keybukbecause by definition, we don't know how their filesystems used to be arranged08:47
Keybukif /proc/mounts is right, it means the user has already gone through and fixed their fstab :p08:48
BenCnot true08:48
Keybukwhy not true?08:48
BenCinitramfs will find their /dev/sda1 and mount it as the rootfs08:48
Keybukno it won't08:48
BenCeven though /etc/fstab says /dev/hda108:48
Keybukinitramfs will be looking for their /dev/hda108:48
Keybukso they'll get a PANIC08:48
BenCfrom what I understand it will eventually mount the /dev/sda108:49
Keybukit will eventually mount UUID=... after the conversion08:49
BenCbut there wont be a UUID= if fstab says /dev/hda1 when one doesn't exist08:49
Keybukif somebody in dapper is using an ahci, and runs this conversion during the upgrade to edgy, and then reboots ... all will be fine08:49
BenCdapper is the problem though08:49
Keybukif dapper has /dev/sdX instead of /dev/hdX, their machine won't boot08:50
Keybuknot without them manually changing their grub options and fstab to /dev/sdX08:50
Keybukinitramfs doesn't magically try /dev/sda1 if /dev/hda1 doesn't work08:50
BenCmaybe I'm misunderstanding the problem I saw then08:51
BenCcould be the user eventually updated the needed files08:51
Keybukyeah08:51
KeybukI suspect you have a user failing to mention they already changed stuff in the bug report <g>08:51
Keybukwe have a few situations in dapper where we would have liked to have had mount-by-uuid08:52
=== johanbr [n=j@jupiter.physics.ubc.ca] has joined #ubuntu-kernel
kylemBenC, i think you found the bug.09:46
=== lloydinho [n=andreas@rosinante.egmont-kol.dk] has joined #ubuntu-kernel
=== lloydinho_ [n=andreas@rosinante.egmont-kol.dk] has joined #ubuntu-kernel
makxKeybuk: your convert script doesn't take care of /dev/cciss and /dev/ida10:10
Keybukmakx: that's deliberate ... do you know whether either of those have UUIDs? :)10:17
=== ..[topic/#ubuntu-kernel:BenC] : Ubuntu kernel development discussion ONLY | Kernel GIT tree info (updated): https://wiki.ubuntu.com/KernelGitGuide | 2.6.17-5.15 uploaded, Welcome our new kexec/kdump overlords | Daily kernel builds (for debug and testing purposes only) http://people.ubuntu.com/~bcollins/kernels-daily/ | Kernel Wiki: https://wiki.ubuntu.com/CategoryKernel
=== lloydinho [n=andreas@rosinante.egmont-kol.dk] has joined #ubuntu-kernel
=== lloydinho_ [n=andreas@rosinante.egmont-kol.dk] has joined #ubuntu-kernel

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!