anchor.diff:                            "~n   Num Online Schedulers: ~s"
                             "~n", [CPU, BogoMIPS, str_num_schedulers()]),
                   if
  -                    (BogoMIPS > 20000) ->
  +                    (BogoMIPS > 50000) ->
                           1;
  +                    (BogoMIPS > 30000) ->
  +                        2;
                       (BogoMIPS > 10000) ->
  -                        2;
  +                        3;
                       (BogoMIPS > 5000) ->
  -                        3;
  -                    (BogoMIPS > 2000) ->
                           5;
  -                    (BogoMIPS > 1000) ->
  +                    (BogoMIPS > 3000) ->
                           8;
                       true ->
                           10
  +                end;
  +            {ok, "POWER9" ++ _ = CPU} ->
  +                %% For some reason this host is really slow
  +                %% Consider the CPU, it really should not be...
  +                %% But, to not fail a bunch of test cases, we add 5
  +                case linux_cpuinfo_clock() of
  +                    Clock when is_integer(Clock) andalso (Clock > 0) ->
  +                        io:format("CPU: "
  +                                  "~n   Model:                 ~s"
  +                                  "~n   CPU Speed:             ~w"
  +                                  "~n   Num Online Schedulers: ~s"
  +                                  "~n", [CPU, Clock, str_num_schedulers()]),
  +                        if
  +                            (Clock > 2000) ->
  +                                5 + num_schedulers_to_factor();
  +                            true ->
  +                                10 + num_schedulers_to_factor()
  +                        end;
  +                    _ ->
  +                        num_schedulers_to_factor()
                   end;
               {ok, CPU} ->
                   io:format("CPU: "
                             "~n   Model:                 ~s"
                             "~n   Num Online Schedulers: ~s"
                             "~n", [CPU, str_num_schedulers()]),
  -                NumChed = erlang:system_info(schedulers),
  -                if
  -                    (NumChed > 2) ->
  -                        2;
  -                    true ->
  -                        5
  -                end;
  +                num_schedulers_to_factor();
               _ ->
                   5
           end,
  
positive.code:                       "~n   Num Online Schedulers: ~s"
                        "~n", [str_num_schedulers()]),
              io:format("TS Scale Factor: ~w~n", [timetrap_scale_factor()]),
              Factor = case erlang:system_info(schedulers) of
                           1 ->
                               10;
                           2 ->
                               5;
                           _ ->
                               2
                       end,
              {Factor, []}
      end.
  
  
  
negative.code:         _:_:_ ->
              io:format("TS Scale Factor: ~w~n", [timetrap_scale_factor()]),
              {Factor, []}
      end.
  
  linux_cpuinfo_clock() ->
      %% This is written as: "3783.000000MHz"
      %% So, check unit MHz (handle nothing else).
      %% Also, check for both float and integer
      %% Also,  the freq is per core, and can vary...
      case linux_cpuinfo_lookup("clock") of
          [C|_] when is_list(C) ->
              case lists:reverse(string:to_lower(C)) of
                  "zhm" ++ CRev ->
                      try trunc(list_to_float(lists:reverse(CRev))) of
                          I ->
                              I
                      catch
                          _:_:_ ->
                              try list_to_integer(lists:reverse(CRev)) of
                                  I ->
                                      I
                              catch
                                  _:_:_ ->
                                      0
                              end
                      end;
                  _ ->
                      0
              end;
          _ ->
              0
      end.
  
  linux_cpuinfo_lookup(Key) when is_list(Key) ->
  