Merge pull request #5754 from BOINC/vko_add_wsl_plan_class

[sched] add wsl plan class
This commit is contained in:
David Anderson 2024-09-04 16:22:45 -07:00 committed by GitHub
commit 0f9fe79ff3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 25 additions and 6 deletions

View File

@ -1,6 +1,6 @@
// This file is part of BOINC. // This file is part of BOINC.
// http://boinc.berkeley.edu // https://boinc.berkeley.edu
// Copyright (C) 2023 University of California // Copyright (C) 2024 University of California
// //
// BOINC is free software; you can redistribute it and/or modify it // BOINC is free software; you can redistribute it and/or modify it
// under the terms of the GNU Lesser General Public License // under the terms of the GNU Lesser General Public License
@ -543,6 +543,13 @@ bool PLAN_CLASS_SPEC::check(
} }
} }
if (wsl) {
if (!sreq.host.wsl_available) {
add_no_work_message("WSL is not available on this host");
return false;
}
}
// project-specific preference // project-specific preference
// //
if (have_project_prefs_regex && strlen(project_prefs_tag)) { if (have_project_prefs_regex && strlen(project_prefs_tag)) {

View File

@ -1,6 +1,6 @@
// This file is part of BOINC. // This file is part of BOINC.
// http://boinc.berkeley.edu // https://boinc.berkeley.edu
// Copyright (C) 2023 University of California // Copyright (C) 2024 University of California
// //
// BOINC is free software; you can redistribute it and/or modify it // BOINC is free software; you can redistribute it and/or modify it
// under the terms of the GNU Lesser General Public License // under the terms of the GNU Lesser General Public License
@ -32,6 +32,7 @@ struct PLAN_CLASS_SPEC {
bool cal; bool cal;
bool opencl; bool opencl;
bool virtualbox; bool virtualbox;
bool wsl;
bool is64bit; bool is64bit;
std::vector<std::string> cpu_features; std::vector<std::string> cpu_features;
double min_ncpus; double min_ncpus;

View File

@ -120,4 +120,8 @@
<min_ncpus> 2 </min_ncpus> <min_ncpus> 2 </min_ncpus>
<max_threads> 2 </max_threads> <max_threads> 2 </max_threads>
</plan_class> </plan_class>
<plan_class>
<name> wsl </name>
<wsl/>
</plan_class>
</plan_classes> </plan_classes>

View File

@ -1,6 +1,6 @@
// This file is part of BOINC. // This file is part of BOINC.
// http://boinc.berkeley.edu // https://boinc.berkeley.edu
// Copyright (C) 2008 University of California // Copyright (C) 2024 University of California
// //
// BOINC is free software; you can redistribute it and/or modify it // BOINC is free software; you can redistribute it and/or modify it
// under the terms of the GNU Lesser General Public License // under the terms of the GNU Lesser General Public License
@ -959,6 +959,11 @@ static inline bool app_plan_vbox(
return true; return true;
} }
static inline bool app_plan_wsl(SCHEDULER_REQUEST& sreq, char* plan_class, HOST_USAGE& hu) {
// no additional checks at the moment, just return true
return true;
}
// app planning function. // app planning function.
// See https://github.com/BOINC/boinc/wiki/AppPlan // See https://github.com/BOINC/boinc/wiki/AppPlan
// //
@ -1019,6 +1024,8 @@ bool app_plan(SCHEDULER_REQUEST& sreq, char* plan_class, HOST_USAGE& hu, const W
return app_plan_sse3(sreq, hu); return app_plan_sse3(sreq, hu);
} else if (strstr(plan_class, "vbox")) { } else if (strstr(plan_class, "vbox")) {
return app_plan_vbox(sreq, plan_class, hu); return app_plan_vbox(sreq, plan_class, hu);
} else if (strstr(plan_class, "wsl")) {
return app_plan_wsl(sreq, plan_class, hu);
} }
log_messages.printf(MSG_CRITICAL, log_messages.printf(MSG_CRITICAL,
"Unknown plan class: %s\n", plan_class "Unknown plan class: %s\n", plan_class