lkml.org 
[lkml]   [2006]   [Oct]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: Suspend to disk: do we HAVE to use swap?
    Il Tue, Oct 31, 2006 at 08:19:37PM +0100, Rafael J. Wysocki ha scritto: 
    > On Tuesday, 31 October 2006 20:05, Alistair John Strachan wrote:
    > > On Tuesday 31 October 2006 17:40, Luca Tettamanti wrote:
    > > > Alistair John Strachan <s0348365@sms.ed.ac.uk> ha scritto:
    > > > > On Tuesday 31 October 2006 06:16, Rafael J. Wysocki wrote:
    > > > > [snip]
    > > > >
    > > > >> However, we already have code that allows us to use swap files for the
    > > > >> suspend and turning a regular file into a swap file is as easy as
    > > > >> running 'mkswap' and 'swapon' on it.
    > > > >
    > > > > How is this feature enabled? I don't see it in 2.6.19-rc4.
    > > >
    > > > Swap files have been supported for ages. suspend-to-swapfile is very
    > > > new, you need a -mm kernel and userspace suspend from CVS:
    > > > http://suspend.sf.net
    > >
    > > I know, I use swap files, and not a partition. This has prevented me from
    > > using suspend to disk "for ages". ;-)
    > >
    > > Is userspace suspend REQUIRED for this feature?
    >
    > No, but unfortunately one piece is still missing: You'll need to figure out
    > where your swap file's header is located.
    >
    > However, if you apply the attached patch the kernel will tell you where it is
    > (after you do 'swapon' grep dmesg for 'swap' and use the value in the
    > 'offset' field).

    Of course it's also possibile to use FIBMAP ioctl:

    #include <stdio.h>
    #include <fcntl.h>
    #include <unistd.h>
    #include <sys/ioctl.h>
    #include <linux/fs.h>

    int main(int argc, char **argv) {
    int block = 0;
    int fd;

    if (argc < 2)
    return 1;

    fd = open(argv[1], O_RDONLY);
    if (fd < 0) {
    perror("open()");
    return 1;
    }

    if (ioctl(fd, FIBMAP, &block)) {
    perror("ioctl()");
    return 1;
    }

    close(fd);
    printf("%d\n", block);

    return 0;
    }

    Probably it's more script friendly (grepping dmesg? hmmm) ;)

    Luca
    --
    Non sempre quello che viene dopo e` progresso.
    Alessandro Manzoni
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2006-10-31 21:17    [W:0.023 / U:152.972 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site