mirror of
https://github.com/clearlinux/kvmtool.git
synced 2026-09-05 05:01:33 +00:00
kvm: Add --mem= option
Which allow an user to specify the amount of memory he would like to provide for kernel. Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
This commit is contained in:
committed by
Will Deacon
parent
6e7b99ee3f
commit
192a99d1d7
+1
-1
@@ -31,7 +31,7 @@ struct kvm {
|
||||
struct interrupt_table interrupt_table;
|
||||
};
|
||||
|
||||
struct kvm *kvm__init(const char *kvm_dev);
|
||||
struct kvm *kvm__init(const char *kvm_dev, unsigned long ram_size);
|
||||
void kvm__delete(struct kvm *self);
|
||||
void kvm__setup_cpuid(struct kvm *self);
|
||||
void kvm__enable_singlestep(struct kvm *self);
|
||||
|
||||
@@ -151,7 +151,7 @@ static bool kvm__cpu_supports_vm(void)
|
||||
return regs.ecx & (1 << feature);
|
||||
}
|
||||
|
||||
struct kvm *kvm__init(const char *kvm_dev)
|
||||
struct kvm *kvm__init(const char *kvm_dev, unsigned long ram_size)
|
||||
{
|
||||
struct kvm_userspace_memory_region mem;
|
||||
struct kvm_pit_config pit_config = { .flags = 0, };
|
||||
@@ -192,7 +192,7 @@ struct kvm *kvm__init(const char *kvm_dev)
|
||||
if (ret < 0)
|
||||
die_perror("KVM_CREATE_PIT2 ioctl");
|
||||
|
||||
self->ram_size = 64UL * 1024UL * 1024UL;
|
||||
self->ram_size = ram_size;
|
||||
|
||||
page_size = sysconf(_SC_PAGESIZE);
|
||||
if (posix_memalign(&self->ram_start, page_size, self->ram_size) != 0)
|
||||
|
||||
@@ -14,7 +14,10 @@ extern bool ioport_debug;
|
||||
|
||||
static void usage(char *argv[])
|
||||
{
|
||||
fprintf(stderr, " usage: %s [--single-step] [--ioport-debug] [--params=<kernel-params>] [--kernel=]<kernel-image>\n",
|
||||
fprintf(stderr, " usage: %s "
|
||||
"[--single-step] [--ioport-debug] "
|
||||
"[--kvm-dev=device] [--mem=MB] [--params=<kernel-params>] "
|
||||
"[--kernel=]<kernel-image>\n",
|
||||
argv[0]);
|
||||
exit(1);
|
||||
}
|
||||
@@ -44,6 +47,7 @@ int main(int argc, char *argv[])
|
||||
const char *kernel_filename = NULL;
|
||||
const char *kernel_cmdline = NULL;
|
||||
const char *kvm_dev = "/dev/kvm";
|
||||
unsigned long ram_size = 64UL << 20;
|
||||
bool single_step = false;
|
||||
int i;
|
||||
|
||||
@@ -62,6 +66,13 @@ int main(int argc, char *argv[])
|
||||
} else if (option_matches(argv[i], "--single-step")) {
|
||||
single_step = true;
|
||||
continue;
|
||||
} else if (option_matches(argv[i], "--mem=")) {
|
||||
unsigned long val = atol(&argv[i][6]) << 20;
|
||||
if (val < ram_size)
|
||||
die("Not enough memory specified: %sMB (min %luMB)",
|
||||
argv[i], ram_size >> 20);
|
||||
ram_size = val;
|
||||
continue;
|
||||
} else if (option_matches(argv[i], "--ioport-debug")) {
|
||||
ioport_debug = true;
|
||||
continue;
|
||||
@@ -78,7 +89,7 @@ int main(int argc, char *argv[])
|
||||
if (!kernel_filename)
|
||||
usage(argv);
|
||||
|
||||
kvm = kvm__init(kvm_dev);
|
||||
kvm = kvm__init(kvm_dev, ram_size);
|
||||
|
||||
kvm__setup_cpuid(kvm);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user