Re: [gentoo-user] activating swap by udev event
On Thursday 01 July 2010 23:50:56 Neil Bothwick wrote: > On Thu, 1 Jul 2010 21:46:15 +0200, Alan McKinnon wrote: > > That will never work in a zillion years for all the good reasons > > mentioned elsewhere in this thread. > > > > You MUST disable swap THEN remove the device. This sequence is > > inviolate. > > You could use a udev rule to enable the swap, but it has to be removed > manually. But it does raise the question of why you would want swap on a > USB stick in the first place. It must be slower than hard disk swap, and > will wear out the flash memory. Instead of all this messing around, just > increase the size of your swap partition, or add another one. Or deal with the actual underlying issue which is probably "get more RAM" -- alan dot mckinnon at gmail dot com
Re: [gentoo-user] activating swap by udev event
On Thu, 1 Jul 2010 21:46:15 +0200, Alan McKinnon wrote: > That will never work in a zillion years for all the good reasons > mentioned elsewhere in this thread. > > You MUST disable swap THEN remove the device. This sequence is > inviolate. You could use a udev rule to enable the swap, but it has to be removed manually. But it does raise the question of why you would want swap on a USB stick in the first place. It must be slower than hard disk swap, and will wear out the flash memory. Instead of all this messing around, just increase the size of your swap partition, or add another one. -- Neil Bothwick Rainbows are just to look at, not to really understand. signature.asc Description: PGP signature
Re: [gentoo-user] activating swap by udev event
On Thursday 01 July 2010 18:06:54 Nils Larsson wrote: > tor 2010-07-01 klockan 08:49 -0700 skrev Bill Longman: > > On 07/01/2010 08:44 AM, SpaceCake wrote: > > > So, it solves the first problem, identifiying the device, but how can I > > > tell to udev to use always /dev/sds (for example) for this device? > > You need to have the udev rule or the script that it runs look at > something specific(the swaplabel for instance). > > > > I'm thinking how can I instruct udev to turn off swap when the device > > > is removed, but this is another story :) > > I tried doing exactly what you're doing now awhile ago and this is where > I got stuck, swapoff needs the deivce node(path) to still exist, it > can't disable swap without it. I could never get swapoff to run before > udev removed the device node, so I ended up with the system thinking(or > at least reporting) that it had loads more swap than it actually did. It is blindingly obvious what mistake you are both making. You want to remove the device then disable swap. That will never work in a zillion years for all the good reasons mentioned elsewhere in this thread. You MUST disable swap THEN remove the device. This sequence is inviolate. -- alan dot mckinnon at gmail dot com
Re: [gentoo-user] activating swap by udev event
On Thu, 01 Jul 2010 11:59:43 -0700, Bill Longman wrote: > > that's good if I want to mount at a specific location, but for swap I > > need the device name, but this is changes depending on how many other > > usb drives are connected. Looks lik this is a tricky question :) > > No, you don't *NEED* the device name to mount swap, you can use a UUID > or a filesystem label: You have the device name in a UDEV rule, it is /dev/%k. -- Neil Bothwick deja noo - reminds you of the last time you visited Scotland signature.asc Description: PGP signature
Re: [gentoo-user] activating swap by udev event
On 07/01/2010 08:59 AM, SpaceCake wrote: > that's good if I want to mount at a specific location, but for swap I > need the device name, but this is changes depending on how many other > usb drives are connected. Looks lik this is a tricky question :) No, you don't *NEED* the device name to mount swap, you can use a UUID or a filesystem label: # swapon -h Usage: swapon -a [-e] [-v] [-f] enable all swaps from /etc/fstab swapon [-p priority] [-v] [-f] enable given swap swapon -sdisplay swap usage summary swapon -hdisplay help swapon -Vdisplay version The parameter: {-L label | LABEL=label} LABEL of device to be used {-U uuid | UUID=uuid} UUID of device to be used name of device to be used name of file to be used Just put LABEL=cakeswap none swap sw,user 0 0 in your fstab and use "mkswap -L cakeswap" on your USB stick. Certainly, you'd want to use "swapoff" *before* you removed the stick, so that's going to have to be a manual step so I think you're stuck unsticking your stick.
Re: [gentoo-user] activating swap by udev event
This is a shame but the idea coming from Windows world. In Win7/Vista there is a feature called ready boost which I suppose do something similar... or maybe not :) the main goal is to break the bottleneck of the slow HDD, but it is maybe a better idea to put some part of the system on a SDHC card which can reside in my bulting SD slot :) I know, this is also removable :) L: 2010/7/1 Albert Hopkins > On Thu, 2010-07-01 at 18:06 +0200, Nils Larsson wrote: > > tor 2010-07-01 klockan 08:49 -0700 skrev Bill Longman: > > > On 07/01/2010 08:44 AM, SpaceCake wrote: > > > > So, it solves the first problem, identifiying the device, but how can > I > > > > tell to udev to use always /dev/sds (for example) for this device? > > > > You need to have the udev rule or the script that it runs look at > > something specific(the swaplabel for instance). > > > > > > I'm thinking how can I instruct udev to turn off swap when the device > is > > > > removed, but this is another story :) > > > > I tried doing exactly what you're doing now awhile ago and this is where > > I got stuck, swapoff needs the deivce node(path) to still exist, it > > can't disable swap without it. I could never get swapoff to run before > > udev removed the device node, so I ended up with the system thinking(or > > at least reporting) that it had loads more swap than it actually did. > > This is a bad thing to do. If you have pages swapped out to the device > and you remove the device before putting those pages elsewhere then you > have effectively hosed your system. If it doesn't fail immediately then > as soon as the kernel tries to swap in those pages and finds out the > device it's on can't be accessed then you are in for a world of pain. > > I guess the deeper question (although entirely rhetorical AFAIC) is why > would someone want to swap out to a removable device? > > >
Re: [gentoo-user] activating swap by udev event
> I guess the deeper question (although entirely rhetorical AFAIC) is why > would someone want to swap out to a removable device? Hot-pluggable swapspace. For various desperate and/or just-in-case scenarios. One might argue that if you find there you did it wrong in the first place.
Re: [gentoo-user] activating swap by udev event
On Thu, 2010-07-01 at 18:06 +0200, Nils Larsson wrote: > tor 2010-07-01 klockan 08:49 -0700 skrev Bill Longman: > > On 07/01/2010 08:44 AM, SpaceCake wrote: > > > So, it solves the first problem, identifiying the device, but how can I > > > tell to udev to use always /dev/sds (for example) for this device? > > You need to have the udev rule or the script that it runs look at > something specific(the swaplabel for instance). > > > > I'm thinking how can I instruct udev to turn off swap when the device is > > > removed, but this is another story :) > > I tried doing exactly what you're doing now awhile ago and this is where > I got stuck, swapoff needs the deivce node(path) to still exist, it > can't disable swap without it. I could never get swapoff to run before > udev removed the device node, so I ended up with the system thinking(or > at least reporting) that it had loads more swap than it actually did. This is a bad thing to do. If you have pages swapped out to the device and you remove the device before putting those pages elsewhere then you have effectively hosed your system. If it doesn't fail immediately then as soon as the kernel tries to swap in those pages and finds out the device it's on can't be accessed then you are in for a world of pain. I guess the deeper question (although entirely rhetorical AFAIC) is why would someone want to swap out to a removable device?
Re: [gentoo-user] activating swap by udev event
On Thu, 1 Jul 2010 18:05:46 +0200, Alex Schuster wrote: > > So, it solves the first problem, identifiying the device, but how can > > I tell to udev to use always /dev/sds (for example) for this device? > > I think, you can's. But you can add SYMLINK="swap" to make the device > appear as /dev/swap, too. That's a better method anyway, later versions of udev complain if you try to rename a device to a non-kernel name. -- Neil Bothwick Guns don't kill people--it's those little pieces of lead. signature.asc Description: PGP signature
Re: [gentoo-user] activating swap by udev event
On Thu, 1 Jul 2010 17:44:24 +0200, SpaceCake wrote: > So, it solves the first problem, identifiying the device, but how can I > tell to udev to use always /dev/sds (for example) I take it you haven't read the link I posted? BTW, please don't top-post on this list. -- Neil Bothwick Programmer (n): A red-eyed, mumbling mammal capable of conversing with inanimate objects. signature.asc Description: PGP signature
Re: [gentoo-user] activating swap by udev event
tor 2010-07-01 klockan 08:49 -0700 skrev Bill Longman: > On 07/01/2010 08:44 AM, SpaceCake wrote: > > So, it solves the first problem, identifiying the device, but how can I > > tell to udev to use always /dev/sds (for example) for this device? You need to have the udev rule or the script that it runs look at something specific(the swaplabel for instance). > > I'm thinking how can I instruct udev to turn off swap when the device is > > removed, but this is another story :) I tried doing exactly what you're doing now awhile ago and this is where I got stuck, swapoff needs the deivce node(path) to still exist, it can't disable swap without it. I could never get swapoff to run before udev removed the device node, so I ended up with the system thinking(or at least reporting) that it had loads more swap than it actually did.
Re: [gentoo-user] activating swap by udev event
SpaceCake writes: > So, it solves the first problem, identifiying the device, but how can I > tell to udev to use always /dev/sds (for example) for this device? I think, you can's. But you can add SYMLINK="swap" to make the device appear as /dev/swap, too. > Also I'm thinking how can I instruct udev to turn off swap when the > device is removed, but this is another story :) I doubt this is possible at all. If you unplug it, the memory that has been swapped there is lost. Wonko
Re: [gentoo-user] activating swap by udev event
that's good if I want to mount at a specific location, but for swap I need the device name, but this is changes depending on how many other usb drives are connected. Looks lik this is a tricky question :) L: 2010/7/1 Bill Longman > On 07/01/2010 08:44 AM, SpaceCake wrote: > > So, it solves the first problem, identifiying the device, but how can I > > tell to udev to use always /dev/sds (for example) for this device? Also > > I'm thinking how can I instruct udev to turn off swap when the device is > > removed, but this is another story :) > > Here's what I have in my /etc/fstab file for one of my USB keys. I > assume you could just change it to say swap instead. > > > UUID=BA62-89BD /mnt/key auto noauto,user,exec,nosuid 0 0 > >
Re: [gentoo-user] activating swap by udev event
On 07/01/2010 08:44 AM, SpaceCake wrote: > So, it solves the first problem, identifiying the device, but how can I > tell to udev to use always /dev/sds (for example) for this device? Also > I'm thinking how can I instruct udev to turn off swap when the device is > removed, but this is another story :) Here's what I have in my /etc/fstab file for one of my USB keys. I assume you could just change it to say swap instead. UUID=BA62-89BD /mnt/key auto noauto,user,exec,nosuid 0 0
Re: [gentoo-user] activating swap by udev event
So, it solves the first problem, identifiying the device, but how can I tell to udev to use always /dev/sds (for example) for this device? Also I'm thinking how can I instruct udev to turn off swap when the device is removed, but this is another story :) Thanks L: 2010/7/1 Neil Bothwick > On Thu, 1 Jul 2010 17:17:15 +0200, SpaceCake wrote: > > > I've never created udev rule so the usal way does not tell me too > > much :) I've checked the net for examples but it looks like very > > complicated for me :) > > http://www.reactivated.net/writing_udev_rules.html > > > My usb stick looks like this > > > > Bus 007 Device 015: ID 058f:6387 Alcor Micro Corp. Transcend JetFlash > > Flash Drive > > > > Can you share with me some example how can I use this info on udev > > rules? > > SUBSYSTEMS=="usb", KERNEL=="sd[a-z]1", ATTRS{idVendor}=="058f", > ATTRS{idProduct}=="6387", RUN="/path/to/your/script" > > That's all on one line. > > -- > Neil Bothwick > > Like an atheist in a grave: all dressed up and no place to go. >
Re: [gentoo-user] activating swap by udev event
On Thu, 1 Jul 2010 17:17:15 +0200, SpaceCake wrote: > I've never created udev rule so the usal way does not tell me too > much :) I've checked the net for examples but it looks like very > complicated for me :) http://www.reactivated.net/writing_udev_rules.html > My usb stick looks like this > > Bus 007 Device 015: ID 058f:6387 Alcor Micro Corp. Transcend JetFlash > Flash Drive > > Can you share with me some example how can I use this info on udev > rules? SUBSYSTEMS=="usb", KERNEL=="sd[a-z]1", ATTRS{idVendor}=="058f", ATTRS{idProduct}=="6387", RUN="/path/to/your/script" That's all on one line. -- Neil Bothwick Like an atheist in a grave: all dressed up and no place to go. signature.asc Description: PGP signature
Re: [gentoo-user] activating swap by udev event
I've never created udev rule so the usal way does not tell me too much :) I've checked the net for examples but it looks like very complicated for me :) My usb stick looks like this Bus 007 Device 015: ID 058f:6387 Alcor Micro Corp. Transcend JetFlash Flash Drive Can you share with me some example how can I use this info on udev rules? Thanks Laszlo 2010/7/1 Neil Bothwick > On Thu, 1 Jul 2010 15:49:08 +0200, SpaceCake wrote: > > > I would like to increase the speed of my machine by putting some swap > > on a fast pendrive. It is working manually by starting a script > > > > swapon -s > > swapon -p -1 /dev/sdb1 > > swapoff /dev/sda6 > > swapon -p -2 /dev/sda6 > > swapon -s > > > > but, I would like to make it automatic by creating an udev rule, so > > when I plug in that device the swap space is automatically activated > > and the priority is changed. > > Create the udev rule in the usual way and add > > RUN="/path/to/your/script" > > You must use a full path when running a program from a udev rule and the > program should exit quickly as udev blocks while it is running. > > > -- > Neil Bothwick > > What colour is a chameleon on a mirror? >
Re: [gentoo-user] activating swap by udev event
tor 2010-07-01 klockan 15:49 +0200 skrev SpaceCake: > Hi, > > > I would like to increase the speed of my machine by putting some swap > on a fast pendrive. It is working manually by starting a script > > swapon -s > swapon -p -1 /dev/sdb1 > swapoff /dev/sda6 > swapon -p -2 /dev/sda6 > swapon -s > > but, I would like to make it automatic by creating an udev rule, so > when I plug in that device the swap space is automatically activated > and the priority is changed. I've tried to google for a solution like > this, but I did not find. Maybe you already have some script at > hand :) can you please share this with me? > > Thanks > Laszlo > I tried doing something like this awhile ago. The problem I encountered was that I couldn't disable the swap once the the device was removed, swapoff couldn't find the device path(as it wasn't there anymore) but the system thought the swap was still there. So plugging and unplugging the swap stick got my system thinking it had loads of swap. But I didn't experiment all that much, maybe there's a way. Tricking udev to hold on to the device node until swap is disabled might be possible.
Re: [gentoo-user] activating swap by udev event
On Thu, 1 Jul 2010 15:49:08 +0200, SpaceCake wrote: > I would like to increase the speed of my machine by putting some swap > on a fast pendrive. It is working manually by starting a script > > swapon -s > swapon -p -1 /dev/sdb1 > swapoff /dev/sda6 > swapon -p -2 /dev/sda6 > swapon -s > > but, I would like to make it automatic by creating an udev rule, so > when I plug in that device the swap space is automatically activated > and the priority is changed. Create the udev rule in the usual way and add RUN="/path/to/your/script" You must use a full path when running a program from a udev rule and the program should exit quickly as udev blocks while it is running. -- Neil Bothwick What colour is a chameleon on a mirror? signature.asc Description: PGP signature