[gentoo-user] Migrate install from Intel 6th gen to AMD Zen 4

2023-08-29 Thread Victor Ivanov
Hello,

I will soon be upgrading from a mobile Skylake platform to a desktop
Ryzen 7000 series and a full re-install is not an option unless all
else fails. I'm thinking of simply moving the drive and recompile as
necessary. I don't see why this wouldn't work, but wanted to double
check with the community just in case.

My existing make.conf has:

COMMON_FLAGS="-march=skylake -O2 -pipe"
CPU_FLAGS_X86="aes avx avx2 f16c fma3 mmx mmxext pclmul popcnt sse
sse2 sse3 sse4_1 sse4_2 ssse3"

My current strategy is:
00) Recompile kernel to support AMD CPU (already done)
01) Upgrade @world to avoid later dependency problems (already done)
1) Replace "-march=skylake" with "x86_64[-v1|v2|v3|v4]" or just "generic"
2) Run "emerge -1aqv @system"
3) Move drive to new system and boot
4) Update to "-march=znver4"
5) Update CPU_FLAGS_X86 with output of "$ cpuid2cpuflags"
6) Run "emerge -1aqv @system"
7) Reboot (optional, just in case)
8) Run "emerge -1aqv --emptytree --keep-going @world"
9) Fingers crossed it all goes well

Am I missing anything critical that could break step (8) or any
packages I should include in step (2) in addition to @system to avoid
likelihood of segfaults?

Best Regards,
- V



Re: [gentoo-user] Migrate install from Intel 6th gen to AMD Zen 4

2023-08-29 Thread Rich Freeman
On Tue, Aug 29, 2023 at 6:22 AM Victor Ivanov  wrote:
>
> My existing make.conf has:
>
> COMMON_FLAGS="-march=skylake -O2 -pipe"
> CPU_FLAGS_X86="aes avx avx2 f16c fma3 mmx mmxext pclmul popcnt sse
> sse2 sse3 sse4_1 sse4_2 ssse3"
>
> 1) Replace "-march=skylake" with "x86_64[-v1|v2|v3|v4]" or just "generic"
> 4) Update to "-march=znver4"
> 5) Update CPU_FLAGS_X86 with output of "$ cpuid2cpuflags"
>
> Am I missing anything critical that could break step (8) or any
> packages I should include in step (2) in addition to @system to avoid
> likelihood of segfaults?

Well, you won't get segfaults so much as SIGILL, but I'd probably
simplify a bit.

I'm running on zen1 and these are my current flags:
CFLAGS="-O2 -mtune=znver1 --param l1-cache-line-size=64 --param
l1-cache-size=32 -pipe -funit-at-a-time -fstack-protector"

I do have CPU_FLAGS_X86 set, but it seems like most of these are used
by less critical packages, and I'm not sure how much trouble getting
these wrong would be.

As you can see I'm not even setting march.  Maybe I could set it a
little more aggressively and not risk any problems, but I'm concerned
about the situation where I might have an unplanned CPU upgrade.  My
motherboard could die, and if it does I'd rather be able to just
replace the motherboard+CPU and not have to fuss around with
rebuilding my entire system from a rescue disk.  I'm sure march
performs better than mtune but I'd be surprised if the difference is
more than a percent or two for most general purpose loads.  If I had
some high performance application that needed every clock cycle then
I'd probably just build that one application with more optimizations.

In general though your plan seems reasonable.  Only thing I would
probably consider is at least rebuilding all of @world with the
unrestrictive -march setting.  I might let it upgrade over time to the
newer CPU optimizations, but having random stuff breaking until I
rebuild @world seems like unnecessary pain.

You say you're "thinking about upgrading" so it sounds like you aren't
in a hurry and odds are you don't have the new hardware looking at you
and begging you to boot it up.  Doing a full @world rebuild is just a
few cents worth of electricity and a day or two.

That's how I'd look at it personally...

-- 
Rich



[gentoo-user] Re: Migrate install from Intel 6th gen to AMD Zen 4

2023-08-29 Thread Nikos Chantziaras

On 29/08/2023 13:22, Victor Ivanov wrote:

Hello,

I will soon be upgrading from a mobile Skylake platform to a desktop
Ryzen 7000 series and a full re-install is not an option unless all
else fails. I'm thinking of simply moving the drive and recompile as
necessary. I don't see why this wouldn't work, but wanted to double
check with the community just in case.


The only thing I did after upgrading to a different platform (Intel to 
AMD) is *first* switching to sys-kernel/gentoo-kernel-bin on the old 
system, move my storage devices to the new system, and then switch back 
to sys-kernel/gentoo-sources on the new system.


gentoo-kernel-bin is a pre-compiled kernel that serves as a fallback in 
case gentoo-sources won't boot. My CFLAGS are:


  -O2 -pipe -mtune=native -march=native -ftree-vectorize

and didn't need changing. CPU_FLAGS_X86 did of course did need changing 
(with cpuid2cpuflags.)


Usually, critical packages that serve to get you a command-line login 
don't end up using amy "weird" CPU instructions (like AVX512 or 
whatever), but other packages might. So it's best to rebuild @world once 
your new system can boot.





[gentoo-user] Jekyll on Gentoo using containers

2023-08-29 Thread Peter Humphrey
Hello list,

I'm trying to set a container up to run jekyll to build a blog, following a
suggestion at the bottom of https://github.com/gentoo-ev/www.gentoo.de.
This is my first foray into containers.

So far I've installed lxc and followed https://wiki.gentoo.org/wiki/LXC as far
as I can, but I'm now a bit stuck. Well, just stuck, actually.

Jekyll is installed, and I want to create a blog in ~/common/myblog.

First, do I need to  mount a FUSE file system? Where?

Next, I run

$ sudo /etc/init.d/docker start

...and get this:

$ cat /var/log/docker.log | cut -d \  -f 2- [to omit date & time]
level=info msg="Starting up"
level=error msg="failed to mount overlay: no such device" 
storage-driver=overlay2
level=error msg="exec: \"fuse-overlayfs\": executable file not found in $PATH" 
storage-driver=fuse-overlayfs
level=error msg="Failed to built-in GetDriver graph btrfs /var/lib/docker"
level=info msg="Loading containers: start."
level=warning msg="Could not load necessary modules for IPSEC rules: protocol 
not supported"
level=info msg="Default bridge (docker0) is assigned with an IP address 
172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address"
level=info msg="Loading containers: done."
level=warning msg="WARNING: No blkio throttle.read_bps_device support"
level=warning msg="WARNING: No blkio throttle.write_bps_device support"
level=warning msg="WARNING: No blkio throttle.read_iops_device support"
level=warning msg="WARNING: No blkio throttle.write_iops_device support"
level=info msg="Docker daemon" commit=4ffc61430bbe6d3d405bdf357b766bf303ff3cc5 
graphdriver=vfs version=24.0.5
level=info msg="Daemon has completed initialization"
level=info msg="API listen on /var/run/docker.sock"

I assume lines 2 & 3 refer to a FUSE file system.

What is line 4 telling me to do?

I assme line 6 refers to IPv6, which is not used here.

What else do I need to do? As with much else Gentoo, it's hard to reach a
point where pertinent questions suggest themselves.

-- 
Regards,
Peter.






Re: [gentoo-user] Jekyll on Gentoo using containers

2023-08-29 Thread Matt Connell
On Tue, 2023-08-29 at 15:31 +0100, Peter Humphrey wrote:
> 
> $ cat /var/log/docker.log | cut -d \  -f 2-   [to omit date & time]
> level=info msg="Starting up"
> level=error msg="failed to mount overlay: no such device" 
> storage-driver=overlay2
> level=error msg="exec: \"fuse-overlayfs\": executable file not found in 
> $PATH" storage-driver=fuse-overlayfs
> level=error msg="Failed to built-in GetDriver graph btrfs /var/lib/docker"
> level=info msg="Loading containers: start."
> level=warning msg="Could not load necessary modules for IPSEC rules: protocol 
> not supported"
> level=info msg="Default bridge (docker0) is assigned with an IP address 
> 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address"
> level=info msg="Loading containers: done."
> level=warning msg="WARNING: No blkio throttle.read_bps_device support"
> level=warning msg="WARNING: No blkio throttle.write_bps_device support"
> level=warning msg="WARNING: No blkio throttle.read_iops_device support"
> level=warning msg="WARNING: No blkio throttle.write_iops_device support"
> level=info msg="Docker daemon" 
> commit=4ffc61430bbe6d3d405bdf357b766bf303ff3cc5 graphdriver=vfs version=24.0.5
> level=info msg="Daemon has completed initialization"
> level=info msg="API listen on /var/run/docker.sock"
> 

Let's start at the top.

When you built docker, did you get any feedback from Portage about
missing or incorrectly set kernel configuration options?  Docker has a
strict list of things that it expects to be set (and not set) in your
kernel configuration, and portage should let you know what it isn't
happy about (at least it did in the past for me before correcting my
configs) when you emerge it.

Additionally, what USE flags do you have set for app-containers/docker?



Re: [gentoo-user] Jekyll on Gentoo using containers

2023-08-29 Thread Peter Humphrey
On Tuesday, 29 August 2023 15:57:42 BST Matt Connell wrote:

> Let's start at the top.
> 
> When you built docker, did you get any feedback from Portage about
> missing or incorrectly set kernel configuration options?

Not that I remember, no.

> Docker has a strict list of things that it expects to be set (and not set)
> in your kernel configuration, and portage should let you know what it isn't
> happy about (at least it did in the past for me before correcting my
> configs) when you emerge it.

> Additionally, what USE flags do you have set for app-containers/docker?

app-containers/docker-24.0.5::gentoo  USE="container-init seccomp -apparmor -
btrfs -device-mapper -overlay (-selinux)"

-- 
Regards,
Peter.






Re: [gentoo-user] Jekyll on Gentoo using containers

2023-08-29 Thread Peter Humphrey
On Tuesday, 29 August 2023 16:56:42 BST I wrote:
> On Tuesday, 29 August 2023 15:57:42 BST Matt Connell wrote:
> > Let's start at the top.
> > 
> > When you built docker, did you get any feedback from Portage about
> > missing or incorrectly set kernel configuration options?
> 
> Not that I remember, no.
> 
> > Docker has a strict list of things that it expects to be set (and not set)
> > in your kernel configuration, and portage should let you know what it
> > isn't
> > happy about (at least it did in the past for me before correcting my
> > configs) when you emerge it.
> > 
> > Additionally, what USE flags do you have set for app-containers/docker?
> 
> app-containers/docker-24.0.5::gentoo  USE="container-init seccomp -apparmor
> - btrfs -device-mapper -overlay (-selinux)"

Hah! I spotted the -btrfs as soon as I hit Send (of course).

Here's my /etc/portage/package.use/lxc:

app-containers/containerd   btrfs
app-containers/docker   btrfs overlay
app-containers/lxc  examples man
sys-libs/libcap static-libs

-- 
Regards,
Peter.






Re: [gentoo-user] Jekyll on Gentoo using containers

2023-08-29 Thread Michael Orlitzky
On Tue, 2023-08-29 at 15:31 +0100, Peter Humphrey wrote:
> Hello list,
> 
> I'm trying to set a container up to run jekyll to build a blog, following a
> suggestion at the bottom of https://github.com/gentoo-ev/www.gentoo.de.
> This is my first foray into containers.

The containers don't add anything of value here (or in most places
people use them). You can look at the Dockerfile in the github repo to
see what commands it uses to build the site. All you should have to do
is mimic that: emerge jekyll, and run "jekyll build" in the repo.

It builds a static site so you can open the resulting HTML right in
your browser without setting up a whole ass web server.