Merge "fs_mgr: remove configurable zram backing file path"
This commit is contained in:
commit
59813afdaf
4 changed files with 26 additions and 50 deletions
|
|
@ -1561,12 +1561,10 @@ static bool InstallZramDevice(const std::string& device) {
|
|||
return true;
|
||||
}
|
||||
|
||||
static bool PrepareZramDevice(const std::string& loop, off64_t size, const std::string& bdev) {
|
||||
if (loop.empty() && bdev.empty()) return true;
|
||||
static bool PrepareZramBackingDevice(off64_t size) {
|
||||
|
||||
if (bdev.length()) {
|
||||
return InstallZramDevice(bdev);
|
||||
}
|
||||
constexpr const char* file_path = "/data/per_boot/zram_swap";
|
||||
if (size == 0) return true;
|
||||
|
||||
// Get free loopback
|
||||
unique_fd loop_fd(TEMP_FAILURE_RETRY(open("/dev/loop-control", O_RDWR | O_CLOEXEC)));
|
||||
|
|
@ -1582,13 +1580,13 @@ static bool PrepareZramDevice(const std::string& loop, off64_t size, const std::
|
|||
}
|
||||
|
||||
// Prepare target path
|
||||
unique_fd target_fd(TEMP_FAILURE_RETRY(open(loop.c_str(), O_RDWR | O_CREAT | O_CLOEXEC, 0600)));
|
||||
unique_fd target_fd(TEMP_FAILURE_RETRY(open(file_path, O_RDWR | O_CREAT | O_CLOEXEC, 0600)));
|
||||
if (target_fd.get() == -1) {
|
||||
PERROR << "Cannot open target path: " << loop;
|
||||
PERROR << "Cannot open target path: " << file_path;
|
||||
return false;
|
||||
}
|
||||
if (fallocate(target_fd.get(), 0, 0, size) < 0) {
|
||||
PERROR << "Cannot truncate target path: " << loop;
|
||||
PERROR << "Cannot truncate target path: " << file_path;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
@ -1624,11 +1622,10 @@ bool fs_mgr_swapon_all(const Fstab& fstab) {
|
|||
continue;
|
||||
}
|
||||
|
||||
if (!PrepareZramDevice(entry.zram_loopback_path, entry.zram_loopback_size, entry.zram_backing_dev_path)) {
|
||||
LERROR << "Skipping losetup for '" << entry.blk_device << "'";
|
||||
}
|
||||
|
||||
if (entry.zram_size > 0) {
|
||||
if (!PrepareZramBackingDevice(entry.zram_backingdev_size)) {
|
||||
LERROR << "Failure of zram backing device file for '" << entry.blk_device << "'";
|
||||
}
|
||||
// A zram_size was specified, so we need to configure the
|
||||
// device. There is no point in having multiple zram devices
|
||||
// on a system (all the memory comes from the same pool) so
|
||||
|
|
|
|||
|
|
@ -279,15 +279,10 @@ void ParseFsMgrFlags(const std::string& flags, FstabEntry* entry) {
|
|||
} else if (StartsWith(flag, "sysfs_path=")) {
|
||||
// The path to trigger device gc by idle-maint of vold.
|
||||
entry->sysfs_path = arg;
|
||||
} else if (StartsWith(flag, "zram_loopback_path=")) {
|
||||
// The path to use loopback for zram.
|
||||
entry->zram_loopback_path = arg;
|
||||
} else if (StartsWith(flag, "zram_loopback_size=")) {
|
||||
if (!ParseByteCount(arg, &entry->zram_loopback_size)) {
|
||||
LWARNING << "Warning: zram_loopback_size= flag malformed: " << arg;
|
||||
} else if (StartsWith(flag, "zram_backingdev_size=")) {
|
||||
if (!ParseByteCount(arg, &entry->zram_backingdev_size)) {
|
||||
LWARNING << "Warning: zram_backingdev_size= flag malformed: " << arg;
|
||||
}
|
||||
} else if (StartsWith(flag, "zram_backing_dev_path=")) {
|
||||
entry->zram_backing_dev_path = arg;
|
||||
} else {
|
||||
LWARNING << "Warning: unknown flag: " << flag;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -50,9 +50,7 @@ struct FstabEntry {
|
|||
off64_t logical_blk_size = 0;
|
||||
std::string sysfs_path;
|
||||
std::string vbmeta_partition;
|
||||
std::string zram_loopback_path;
|
||||
uint64_t zram_loopback_size = 512 * 1024 * 1024; // 512MB by default;
|
||||
std::string zram_backing_dev_path;
|
||||
uint64_t zram_backingdev_size = 0;
|
||||
std::string avb_keys;
|
||||
|
||||
struct FsMgrFlags {
|
||||
|
|
|
|||
|
|
@ -393,9 +393,9 @@ TEST(fs_mgr, ReadFstabFromFile_FsMgrOptions_AllBad) {
|
|||
TemporaryFile tf;
|
||||
ASSERT_TRUE(tf.fd != -1);
|
||||
std::string fstab_contents = R"fs(
|
||||
source none0 swap defaults encryptable,forceencrypt,fileencryption,forcefdeorfbe,keydirectory,length,swapprio,zramsize,max_comp_streams,reservedsize,eraseblk,logicalblk,sysfs_path,zram_loopback_path,zram_loopback_size,zram_backing_dev_path
|
||||
source none0 swap defaults encryptable,forceencrypt,fileencryption,forcefdeorfbe,keydirectory,length,swapprio,zramsize,max_comp_streams,reservedsize,eraseblk,logicalblk,sysfs_path,zram_backingdev_size
|
||||
|
||||
source none1 swap defaults encryptable=,forceencrypt=,fileencryption=,keydirectory=,length=,swapprio=,zramsize=,max_comp_streams=,avb=,reservedsize=,eraseblk=,logicalblk=,sysfs_path=,zram_loopback_path=,zram_loopback_size=,zram_backing_dev_path=
|
||||
source none1 swap defaults encryptable=,forceencrypt=,fileencryption=,keydirectory=,length=,swapprio=,zramsize=,max_comp_streams=,avb=,reservedsize=,eraseblk=,logicalblk=,sysfs_path=,zram_backingdev_size=
|
||||
|
||||
source none2 swap defaults forcefdeorfbe=
|
||||
|
||||
|
|
@ -425,9 +425,7 @@ source none2 swap defaults forcefdeorfbe=
|
|||
EXPECT_EQ(0, entry->erase_blk_size);
|
||||
EXPECT_EQ(0, entry->logical_blk_size);
|
||||
EXPECT_EQ("", entry->sysfs_path);
|
||||
EXPECT_EQ("", entry->zram_loopback_path);
|
||||
EXPECT_EQ(512U * 1024U * 1024U, entry->zram_loopback_size);
|
||||
EXPECT_EQ("", entry->zram_backing_dev_path);
|
||||
EXPECT_EQ(0U, entry->zram_backingdev_size);
|
||||
entry++;
|
||||
|
||||
EXPECT_EQ("none1", entry->mount_point);
|
||||
|
|
@ -452,9 +450,7 @@ source none2 swap defaults forcefdeorfbe=
|
|||
EXPECT_EQ(0, entry->erase_blk_size);
|
||||
EXPECT_EQ(0, entry->logical_blk_size);
|
||||
EXPECT_EQ("", entry->sysfs_path);
|
||||
EXPECT_EQ("", entry->zram_loopback_path);
|
||||
EXPECT_EQ(512U * 1024U * 1024U, entry->zram_loopback_size);
|
||||
EXPECT_EQ("", entry->zram_backing_dev_path);
|
||||
EXPECT_EQ(0U, entry->zram_backingdev_size);
|
||||
entry++;
|
||||
|
||||
// forcefdeorfbe has its own encryption_options defaults, so test it separately.
|
||||
|
|
@ -921,14 +917,10 @@ TEST(fs_mgr, ReadFstabFromFile_FsMgrOptions_Zram) {
|
|||
TemporaryFile tf;
|
||||
ASSERT_TRUE(tf.fd != -1);
|
||||
std::string fstab_contents = R"fs(
|
||||
source none0 swap defaults zram_loopback_path=/dev/path
|
||||
|
||||
source none1 swap defaults zram_loopback_size=blah
|
||||
source none2 swap defaults zram_loopback_size=2
|
||||
source none3 swap defaults zram_loopback_size=1K
|
||||
source none4 swap defaults zram_loopback_size=2m
|
||||
|
||||
source none5 swap defaults zram_backing_dev_path=/dev/path2
|
||||
source none1 swap defaults zram_backingdev_size=blah
|
||||
source none2 swap defaults zram_backingdev_size=2
|
||||
source none3 swap defaults zram_backingdev_size=1K
|
||||
source none4 swap defaults zram_backingdev_size=2m
|
||||
|
||||
)fs";
|
||||
|
||||
|
|
@ -936,29 +928,23 @@ source none5 swap defaults zram_backing_dev_path=/dev/path2
|
|||
|
||||
Fstab fstab;
|
||||
EXPECT_TRUE(ReadFstabFromFile(tf.path, &fstab));
|
||||
ASSERT_EQ(6U, fstab.size());
|
||||
ASSERT_EQ(4U, fstab.size());
|
||||
|
||||
auto entry = fstab.begin();
|
||||
EXPECT_EQ("none0", entry->mount_point);
|
||||
EXPECT_EQ("/dev/path", entry->zram_loopback_path);
|
||||
entry++;
|
||||
|
||||
EXPECT_EQ("none1", entry->mount_point);
|
||||
EXPECT_EQ(512U * 1024U * 1024U, entry->zram_loopback_size);
|
||||
EXPECT_EQ(0U, entry->zram_backingdev_size);
|
||||
entry++;
|
||||
|
||||
EXPECT_EQ("none2", entry->mount_point);
|
||||
EXPECT_EQ(2U, entry->zram_loopback_size);
|
||||
EXPECT_EQ(2U, entry->zram_backingdev_size);
|
||||
entry++;
|
||||
|
||||
EXPECT_EQ("none3", entry->mount_point);
|
||||
EXPECT_EQ(1024U, entry->zram_loopback_size);
|
||||
EXPECT_EQ(1024U, entry->zram_backingdev_size);
|
||||
entry++;
|
||||
|
||||
EXPECT_EQ("none4", entry->mount_point);
|
||||
EXPECT_EQ(2U * 1024U * 1024U, entry->zram_loopback_size);
|
||||
EXPECT_EQ(2U * 1024U * 1024U, entry->zram_backingdev_size);
|
||||
entry++;
|
||||
|
||||
EXPECT_EQ("none5", entry->mount_point);
|
||||
EXPECT_EQ("/dev/path2", entry->zram_backing_dev_path);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue