[Computer Architecture] Sniper lab2

The code is at http://victoryang00.xyz:5012/victoryang/sniper_test/tree/lab2.

The lab was to implement the Hash perceptron according to the paper "Dynamic-Branch-Prediction-with-Perceptrons".

The cache implementation is in common/performance_model/branch_predictor.cc

#include "perceptron_branch_predictor.h"
...
else if (type == "perceptron")
{
   return new PerceptronBranchPredictor("branch_predictor", core_id);
}

The modification in the cfg

[perf_model/branch_predictor]
type = perceptron    # add Perceptron
mispredict_penalty=8 # Reflects just the front-end portion (approx) of the penalty for Interval Simulation

The constructor is passed to the perceptron_branch_predictor.h, we have to maintain the member variable as below:

struct PHT {
        bool taken;     //jump or not
        IntPtr target;  //64 history target address. 
        PHT(bool bt, IntPtr it) : taken(bt), target(it) {}
    };//The pattern history table, set like a round linked list to avoid the memory copy

//To store the history result.
		SInt32 history_sum;
    UInt32 history_bias_index;
    std::vector<UInt32> history_indexes;
    std::vector<PHT> history_path;
    UInt32 history_path_index;

    std::vector<PHT> path;
    UInt32 path_index;

    UInt32 path_length;
    UInt32 num_entries;
    UInt32 num_bias_entries;//1024
    UInt32 weight_bits;
    std::vector<std::vector<SInt32>> weights;
    std::vector<SInt32> perceptron;           //Update the perceptron table to 1024 entries
    UInt32 theta;															//Threshold, to determine the train is good
    SInt64 count;														  //To store the count
    UInt32 block_size;											  //block sides initialize to perseption

    // initialize the branch history register and perceptron table to 0
PerceptronBranchPredictor::PerceptronBranchPredictor(String name, core_id_t core_id)
    : BranchPredictor(name, core_id), history_sum(0), history_bias_index(0), history_indexes(64 / 8, 0), history_path(64, PHT(false, 0)), history_path_index(0), path(64, PHT(false, 0)), path_index(0), path_length(64), num_entries(256), num_bias_entries(1024), weight_bits(7), weights(256, std::vector<SInt32>(64, 0)), perceptron(1024, 0), theta(296.64), count(0), block_size(8), coefficients(64, 0)

The prediction method

The Base neral predictor is based on the equation $y=w_{0}+\sum_{i=1}^{n} x_{i} w_{i}$, We have that

// if the prediction is wrong or the weight value is smaller than the threshold THETA, 
// then update the weight  to train the perceptron
weights = floor(1.93 * blocksize + 14)

Hashed Perceptron Multiple

  1. set of branches assigned to same weights
  2. More than one set of information can be used to hash into the weight table
  3. Diferent hashing function can be used such as : XOR, Concatenation etc.
  4. Diferent indices can be assigned to diferent weights

Algorithm

The input is ip, and first come to a computation of (ip >> 4) % num_bias_entries;

This give the seed to the weight table lines:

table of perception will get update to te coefficient*weight and

and weight table will update to weights[index[i]][i*8...(i+1)*8]*coefficients[i*8...(i+1)*8]*h

if the result >0 the prediction is right then jump, or not jump.

Then update the history and insert the round linked list.

bool PerceptronBranchPredictor::predict(IntPtr ip, IntPtr target)
{
    double sum = 0;
  //hash method
    UInt32 bias_index = (ip >> 4) % num_bias_entries;

    sum += bias_coefficient * perceptron[bias_index];
    history_bias_index = bias_index;
  //update the weight
    for (UInt32 i = 0; i < path_length; i += block_size)
    {
        IntPtr z = ip >> 4;
        for (UInt32 j = 0; j < block_size; j++)
        {
            z ^= (path[(path_index - i - j + path_length - 1) % path_length].target >> 4);
        }
        UInt32 index = z % num_entries;
        history_indexes[i / block_size] = index;
        for (UInt32 j = 0; j < block_size; j++)
        {
            SInt32 h = path[(path_index - i - j + path_length - 1) % path_length].taken ? 1 : -1;
            sum += h * weights[index][i + j] * coefficients[i + j];
        }
    }
    bool result = ((SInt32)sum) >= 0;
    history_sum = (SInt32)sum;

    history_path.assign(path.begin(), path.end());
    history_path_index = path_index;
    path[path_index] = PHT(result, target);
    path_index = (path_index + 1) % path_length;

    return result;
}

The train process

Algorithm

Input parameters: predicted, actual, ip
auxiliary parameters: history_sum(predicted value), history_bias_index, history_indexes(index). history_path(history), history_path_index(history subscript)

for each bit in parallel
	if t=xi then
  		wi=wi+1
    else
    	wi=wi-1
    end if

Realization

for (UInt32 i = 0; i < path_length; i += block_size)
        {
            index = history_indexes[i / block_size];
            for (UInt32 j = 0; j < block_size; j++)
            {
                bool taken = history_path[(history_path_index - i - j + path_length - 1) % path_length].taken;
                if (taken == actual)
                {
                    if (weights[index][i + j] < (1 << weight_bits) - 1)
                        weights[index][i + j]++;
                }
                else
                {
                    if (weights[index][i + j] > -(1 << weight_bits))
                        weights[index][i + j]--;
                }
            }
        }

The result

FFT with Blocking Transpose
   1024 Complex Doubles
   1 Processors
   65536 Cache lines
   16 Byte line size
   4096 Bytes per page
pentium_m perceptron
num correct 63112 65612
num incorrect 4342 2112
IPC 1.36 1.37
mpki 2.71 1.39
misprediction rate 6.436% 3.118%
Elapsed time 4.46s 5.23s
cycles 1.2M 1.2M
Instructions 1.6M 1.6M

Reference

  1. https://github.com/ChrsMark/BranchPredictors

[Computer Architecture] Sniper lab3

The code can be viewed on http://victoryang00.xyz:5012/victoryang/sniper_test/tree/lab3

false sharing

For the false sharing test cases. We've given the lab3 cfg file that the cache line is 64B. So that we just need to set the false sharing variable under that cache size.

In the false_sharing_bad.c, we open 2 thread to store global variable results with first part th1 visits and the second part th2 visits.

void* myfunc(void *args){
    int i;
    MY_ARGS* my_args=(MY_ARGS*)args;
    int first = my_args->first;
    int last = my_args->last;
    int id = my_args->id;
    // int s=0;
    for (i=first;i<last;i++){
        results[id]=results[id]+arr[i];
    }

    return NULL;
}

The result of this in the sniper.

[SNIPER] Warning: Unable to use physical addresses for shared memory simulation.
[SNIPER] Start
[SNIPER] --------------------------------------------------------------------------------
[SNIPER] Sniper using SIFT/trace-driven frontend
[SNIPER] Running full application in DETAILED mode
[SNIPER] --------------------------------------------------------------------------------
[SNIPER] Enabling performance models
[SNIPER] Setting instrumentation mode to DETAILED
[RECORD-TRACE] Using the Pin frontend (sift/recorder)
[TRACE:1] -- DONE --
[TRACE:2] -- DONE --
s1 = 5003015
s2= 5005373
s1+s2= 10008388
[TRACE:0] -- DONE --
[SNIPER] Disabling performance models
[SNIPER] Leaving ROI after 627.88 seconds
[SNIPER] Simulated 445.0M instructions, 192.9M cycles, 2.31 IPC
[SNIPER] Simulation speed 708.8 KIPS (177.2 KIPS / target core - 5643.3ns/instr)
[SNIPER] Setting instrumentation mode to FAST_FORWARD
[SNIPER] End
[SNIPER] Elapsed time: 627.79 seconds

In the false_sharing.c, we open 2 thread to store different local variable s with th1 visits and th2 visits.

void* myfunc(void *args){
    int i;
    MY_ARGS* my_args=(MY_ARGS*)args;
    int first = my_args->first;
    int last = my_args->last;
    // int id = my_args->id;
    int s=0;
    for (i=first;i<last;i++){
        s=s+arr[i];
    }

    my_args->result=s;
    return NULL;
}

The result of this in the sniper.

[SNIPER] Warning: Unable to use physical addresses for shared memory simulation.
[SNIPER] Start
[SNIPER] --------------------------------------------------------------------------------
[SNIPER] Sniper using SIFT/trace-driven frontend
[SNIPER] Running full application in DETAILED mode
[SNIPER] --------------------------------------------------------------------------------
[SNIPER] Enabling performance models
[SNIPER] Setting instrumentation mode to DETAILED
[RECORD-TRACE] Using the Pin frontend (sift/recorder)
[TRACE:2] -- DONE --
[TRACE:1] -- DONE --
s1 = 5003015
s2= 5003015
s1+s2= 10006030
[TRACE:0] -- DONE --
[SNIPER] Disabling performance models
[SNIPER] Leaving ROI after 533.95 seconds
[SNIPER] Simulated 415.1M instructions, 182.1M cycles, 2.28 IPC
[SNIPER] Simulation speed 777.3 KIPS (194.3 KIPS / target core - 5145.9ns/instr)
[SNIPER] Setting instrumentation mode to FAST_FORWARD
[SNIPER] End
[SNIPER] Elapsed time: 533.99 seconds

The reason of false sharing:

Every time the thread may let the results to get into the CPU cache.

The Cache may check whether the cache part and memory are the same or not, thus trigger the latency, which is false sharing.

The solution of the false sharing:

Just let the adjacent data's distance larger than the one cache line, say 64B. so set FALSE_ARR to 200000.

The result changed to:

[SNIPER] Warning: Unable to use physical addresses for shared memory simulation.
[SNIPER] Start
[SNIPER] --------------------------------------------------------------------------------
[SNIPER] Sniper using SIFT/trace-driven frontend
[SNIPER] Running full application in DETAILED mode
[SNIPER] --------------------------------------------------------------------------------
[SNIPER] Enabling performance models
[SNIPER] Setting instrumentation mode to DETAILED
[RECORD-TRACE] Using the Pin frontend (sift/recorder)
[TRACE:1] -- DONE --
[TRACE:2] -- DONE --
s1 = 5003015
s2= 5005373
s1+s2= 10008388
[TRACE:0] -- DONE --
[SNIPER] Disabling performance models
[SNIPER] Leaving ROI after 512.28 seconds
[SNIPER] Simulated 445.1M instructions, 158.1M cycles, 2.82 IPC
[SNIPER] Simulation speed 868.8 KIPS (217.2 KIPS / target core - 4604.2ns/instr)
[SNIPER] Setting instrumentation mode to FAST_FORWARD
[SNIPER] End
[SNIPER] Elapsed time: 512.22 seconds

multi-level cache

The non-inclusive cach is to remove the back-invalidation and fix one.

Then I found https://groups.google.com/g/snipersim/c/_NJu8DXCVVs/m/uL3Vo24OAAAJ. That the non-inclusive cache intends to directly write back to the memory. We have to fix some bugs for inclusive cache during the L1 eviction and L2 have to evict, but L2 may not be found, thus the L1 should WB to memory, in this time.

I add a new configuration in the cfg. to make the L1 non-inclusive or not and deployed different Protocol in cfg.

[caching_protocol]
type = parametric_dram_directory_msi
variant = mesif                           # msi, mesi or mesif

I didn't do a result with a small granularity but with lock_add lock_fill_bucket reader_writer and bfs, I got num of write backs and some WB test for inclusive and non inclusive caches.

Test

Lock Add: In this test all the threads try to add ‘1’ to a global counter using locks. We see lower number of memory writebacks in MOSI because of the presence of the owner state.

Lock Fill Bucket: This tests makes buckets for numbers, so that it can count how many times each number is present in the array. This is done using locks. The dragon protocol is performing much worse here compared to others. This is probably because updates to the buckets are not always needed by other processors, hence the updates on the writes do not help.

Result

Protocol
Protocol\IPC lock_add lock_fill_bucket reader_writer bfs
MSI 1.31 1.32 1.27 1.39
MESI 1.35 1.36 1.29 1.39
MESIF 1.35 1.36 1.30 1.39

The MESIF protocol enhances the performance for teh multicore systems. MESIF protocal enhances the performance for multicore system. It may be aware of the micro arch.

CPI stack

The CPI stack can quantify the cycle gone due to memory branch or sync. literally all of the protocal has similar graph as above. The MESIF shows the lowest time in mem and sync.

Protocol\L2 miss rate lock_add lock_fill_bucket reader_writer bfs
MSI 49.18 20.13 27.12 42.24
MSI (with non-inclusive cache) 47.98 20.01 29.12 42.13
MESI 46.21 21.13 31.29 41.31
MESI (with non-inclusive cache) 45.13 21.41 26.41 42.15
MESIF 45.71 20.12 25.14 41.39
MESIF (with non-inclusive cache) 46.35 23.14 24.14 41.13

The non-inclusive cache have a better score than inclusive ones in L2 miss rate and MESIF & MESI are better than the MSI.

Summary

Interesting Conclusions

Adding ‘E’ state:

To measure the performance differences caused by adding the Exclusive state to the protocols, we can look at the differences in metrics in MSI vs MESI and MESIF. The main benefit of the Exclusive state is in reducing the number of snooping bus transactions required. If we consider a parallel program where each thread works on a chunk of an array and updates only that chunk, or if we assume a sequential program that has a single thread, then in these cases, there will be a lot of cases where a program is reading a cacheline and updating it. In MSI, this would translate to first loading the cacheline using a BusRd moving to the S state, and then performing a BusRdX and moving to the M state. This requires two snooping bus transactions. In the case of MESI, this can be done in a single transaction. The cache would perform a BusRd moving to the E state and then since no other cache has the cacheline, there is no need of a BusRdX transaction to move to the M state. It can just silently change the status of the cacheline to Modified.
This gives a significant boost in programs which access and modify unique memory addresses.

Write-Invalidation vs Write-Update

Since we have implemented both write invalidation and write update protocols, our simulator can also tell whether for a given program or memory trace, write invalidation protocols will be better or write update.
For a write-invalidation protocol, when a processor writes to a memory location, other processor caches need to invalidate that cacheline. In a write-update protocol, instead of invalidating the cachelines, it sends the updated cacheline to the other caches. Therefore, in cases where the other processors will need to read those values in the future, write-update performs well, but if the other processors are not going to be needing those values, then the updates are not going to be of any use, and will just cause extra bus transactions. Therefore, the effects of the protocol would be completely dependent.
From our tests, we saw lesser number of bus transactions This would explain why updating rather than invalidating reduced the number of bus transactions.

MOESI (Unchecked)

I refer to the graph of

The code is in dir_moesi directory with one state added.

I just make it runnable and not yet tested.

Reference

  1. https://www.youtube.com/watch?v=3DoBCs7Lyv4
  2. https://kshitizdange.github.io/

VEE Workshop ‘2022

Haibo

History of virtualization




Increasing complxity and security vulnerabilities.

Example of AWS vulnerability

Attack Model

Possible Protection



Crossover



TrustZone on Arm + VMM






Use SW-HW Codesign



Session 1




CentOS 8 startup repo issue

You may jump into issues like

[root@tokio ~]# dnf update
CentOS-8 - AppStream                                                                    128  B/s |  38  B     00:00
Failed to download metadata for repo 'AppStream'
Error: Failed to download metadata for repo 'AppStream'

you need to

Last login: Mon Feb 28 02:01:55 2022 from 119.78.254.1
(reverse-i-search)`': ^C
[root@tokio ~]# nan o^C
[root@tokio ~]# curl -O
curl: no URL specified!
curl: try 'curl --help' or 'curl --manual' for more information
[root@tokio ~]# curl -O https://rpmfind.net/linux/centos/8-stream/BaseOS/x86_64/os/Packages/centos-stream-release-8.5-2.el8.noarch.rpm
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 22216  100 22216    0     0  15279      0  0:00:01  0:00:01 --:--:-- 15268curl
[root@tokio ~]# curl -O https://rpmfind.net/linux/centos/8-stream/BaseOS/x86_64/os/Packages/centos-stream-repos-8-3.el8.noarch.rpm
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 19892  100 19892    0     0  16521      0  0:00:01  0:00:01 --:--:-- 16521lur
[root@tokio ~]# curl -O https://rpmfind.net/linux/centos/8-stream/BaseOS/x86_64/os/Packages/centos-gpg-keys-8-3.el8.noarch.rpm
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 12552  100 12552    0     0  10330      0  0:00:01  0:00:01 --:--:-- 10330
[root@tokio ~]# rpm -i ./
anaconda-ks.cfg                             centos-stream-release-8.5-2.el8.noarch.rpm
.bash_history                               centos-stream-repos-8-3.el8.noarch.rpm
.bash_logout                                .cshrc
.bash_profile                               original-ks.cfg
.bashrc                                     .ssh/
centos-gpg-keys-8-3.el8.noarch.rpm          .tcshrc
[root@tokio ~]# rpm -i ./
anaconda-ks.cfg                             centos-stream-release-8.5-2.el8.noarch.rpm
.bash_history                               centos-stream-repos-8-3.el8.noarch.rpm
.bash_logout                                .cshrc
.bash_profile                               original-ks.cfg
.bashrc                                     .ssh/
centos-gpg-keys-8-3.el8.noarch.rpm          .tcshrc
[root@tokio ~]# rpm -i ./centos-gpg-keys-8-3.el8.noarch.rpm
warning: ./centos-gpg-keys-8-3.el8.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 8483c65d: NOKEY
[root@tokio ~]# rpm -i ./centos-stream-repos-8-3.el8.noarch.rpm
warning: ./centos-stream-repos-8-3.el8.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 8483c65d: NOKEY
error: Failed dependencies:
	centos-repos(8) conflicts with centos-stream-repos-8-3.el8.noarch
[root@tokio ~]# nf re^C
[root@tokio ~]# dnf remove centos-repos
Dependencies resolved.
========================================================================================================================
 Package                         Architecture         Version                             Repository               Size
========================================================================================================================
Removing:
 centos-repos                    x86_64               8.1-1.1911.0.8.el8                  @anaconda               8.7 k
Removing dependent packages:
 initscripts                     x86_64               10.00.4-1.el8                       @anaconda               1.0 M
 nfs-utils                       x86_64               1:2.3.3-26.el8                      @anaconda               1.8 M
 setup                           noarch               2.12.2-2.el8                        @anaconda               707 k
 shadow-utils                    x86_64               2:4.6-8.el8                         @anaconda               5.1 M
Removing unused dependencies:
 centos-gpg-keys                 noarch               8.1-1.1911.0.8.el8                  @anaconda               3.3 k
 centos-release                  x86_64               8.1-1.1911.0.8.el8                  @anaconda                25 k
 gssproxy                        x86_64               0.8.0-14.el8                        @anaconda               393 k
 keyutils                        x86_64               1.5.10-6.el8                        @anaconda               115 k
 libverto-libevent               x86_64               0.3.0-5.el8                         @anaconda                12 k
 quota                           x86_64               1:4.04-10.el8                       @anaconda               949 k
 quota-nls                       noarch               1:4.04-10.el8                       @anaconda               277 k
 rpcbind                         x86_64               1.2.5-4.el8                         @anaconda               137 k

Transaction Summary
========================================================================================================================
Remove  13 Packages

Freed space: 11 M
Is this ok [y/N]: y
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                1/1
  Running scriptlet: nfs-utils-1:2.3.3-26.el8.x86_64                                                                1/1
  Running scriptlet: nfs-utils-1:2.3.3-26.el8.x86_64                                                               1/13
  Erasing          : nfs-utils-1:2.3.3-26.el8.x86_64                                                               1/13
warning: file /var/lib/nfs/v4recovery: remove failed: No such file or directory
warning: file /var/lib/nfs/statd/sm.bak: remove failed: No such file or directory
warning: file /var/lib/nfs/statd/sm: remove failed: No such file or directory
warning: file /var/lib/nfs/statd: remove failed: No such file or directory
warning: directory /var/lib/nfs/rpc_pipefs: remove failed: Device or resource busy

  Running scriptlet: nfs-utils-1:2.3.3-26.el8.x86_64                                                               1/13
  Running scriptlet: rpcbind-1.2.5-4.el8.x86_64                                                                    2/13
  Erasing          : rpcbind-1.2.5-4.el8.x86_64                                                                    2/13
  Running scriptlet: rpcbind-1.2.5-4.el8.x86_64                                                                    2/13
  Running scriptlet: initscripts-10.00.4-1.el8.x86_64                                                              3/13
  Erasing          : initscripts-10.00.4-1.el8.x86_64                                                              3/13
  Running scriptlet: initscripts-10.00.4-1.el8.x86_64                                                              3/13
  Erasing          : shadow-utils-2:4.6-8.el8.x86_64                                                               4/13
  Erasing          : setup-2.12.2-2.el8.noarch                                                                     5/13
warning: /etc/shadow saved as /etc/shadow.rpmsave
warning: /etc/passwd saved as /etc/passwd.rpmsave
warning: /etc/gshadow saved as /etc/gshadow.rpmsave
warning: /etc/group saved as /etc/group.rpmsave

  Erasing          : centos-release-8.1-1.1911.0.8.el8.x86_64                                                      6/13
  Running scriptlet: centos-release-8.1-1.1911.0.8.el8.x86_64                                                      6/13
  Erasing          : centos-repos-8.1-1.1911.0.8.el8.x86_64                                                        7/13
  Running scriptlet: gssproxy-0.8.0-14.el8.x86_64                                                                  8/13
  Erasing          : gssproxy-0.8.0-14.el8.x86_64                                                                  8/13
  Running scriptlet: gssproxy-0.8.0-14.el8.x86_64                                                                  8/13
  Erasing          : quota-1:4.04-10.el8.x86_64                                                                    9/13
  Erasing          : quota-nls-1:4.04-10.el8.noarch                                                               10/13
  Erasing          : centos-gpg-keys-8.1-1.1911.0.8.el8.noarch                                                    11/13
  Erasing          : libverto-libevent-0.3.0-5.el8.x86_64                                                         12/13
  Erasing          : keyutils-1.5.10-6.el8.x86_64                                                                 13/13
  Running scriptlet: keyutils-1.5.10-6.el8.x86_64                                                                 13/13
  Verifying        : centos-gpg-keys-8.1-1.1911.0.8.el8.noarch                                                     1/13
  Verifying        : centos-release-8.1-1.1911.0.8.el8.x86_64                                                      2/13
  Verifying        : centos-repos-8.1-1.1911.0.8.el8.x86_64                                                        3/13
  Verifying        : gssproxy-0.8.0-14.el8.x86_64                                                                  4/13
  Verifying        : initscripts-10.00.4-1.el8.x86_64                                                              5/13
  Verifying        : keyutils-1.5.10-6.el8.x86_64                                                                  6/13
  Verifying        : libverto-libevent-0.3.0-5.el8.x86_64                                                          7/13
  Verifying        : nfs-utils-1:2.3.3-26.el8.x86_64                                                               8/13
  Verifying        : quota-1:4.04-10.el8.x86_64                                                                    9/13
  Verifying        : quota-nls-1:4.04-10.el8.noarch                                                               10/13
  Verifying        : rpcbind-1.2.5-4.el8.x86_64                                                                   11/13
  Verifying        : setup-2.12.2-2.el8.noarch                                                                    12/13
  Verifying        : shadow-utils-2:4.6-8.el8.x86_64                                                              13/13

Removed:
  centos-repos-8.1-1.1911.0.8.el8.x86_64    initscripts-10.00.4-1.el8.x86_64  nfs-utils-1:2.3.3-26.el8.x86_64
  setup-2.12.2-2.el8.noarch                 shadow-utils-2:4.6-8.el8.x86_64   centos-gpg-keys-8.1-1.1911.0.8.el8.noarch
  centos-release-8.1-1.1911.0.8.el8.x86_64  gssproxy-0.8.0-14.el8.x86_64      keyutils-1.5.10-6.el8.x86_64
  libverto-libevent-0.3.0-5.el8.x86_64      quota-1:4.04-10.el8.x86_64        quota-nls-1:4.04-10.el8.noarch
  rpcbind-1.2.5-4.el8.x86_64

Complete!
[root@tokio ~]# dnf remove centos-repos^C
[root@tokio ~]# rpm -i ./
anaconda-ks.cfg                             centos-stream-release-8.5-2.el8.noarch.rpm
.bash_history                               centos-stream-repos-8-3.el8.noarch.rpm
.bash_logout                                .cshrc
.bash_profile                               original-ks.cfg
.bashrc                                     .ssh/
centos-gpg-keys-8-3.el8.noarch.rpm          .tcshrc
[root@tokio ~]# rpm -i ./centos-gpg-keys-8-3.el8.noarch.rpm
warning: ./centos-gpg-keys-8-3.el8.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 8483c65d: NOKEY
	package centos-gpg-keys-1:8-3.el8.noarch is already installed
[root@tokio ~]# rpm -i ./centos-stream-release-8.5-2.el8.noarch.rpm
warning: ./centos-stream-release-8.5-2.el8.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 8483c65d: NOKEY
[root@tokio ~]# rpm -i ./centos-stream-repos-8-3.el8.noarch.rpm
warning: ./centos-stream-repos-8-3.el8.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 8483c65d: NOKEY
[root@tokio ~]# yum update
CentOS Stream 8 - AppStream                                                             6.0 MB/s |  20 MB     00:03
CentOS Stream 8 - BaseOS                                                                6.1 MB/s |  19 MB     00:03
CentOS Stream 8 - Extras                                                                 15 kB/s |  18 kB     00:01
Dependencies resolved.
========================================================================================================================
 Package                              Architecture    Version                                  Repository          Size
========================================================================================================================
Installing:
 kernel                               x86_64          4.18.0-365.el8                           baseos             7.7 M
 kernel-core                          x86_64          4.18.0-365.el8                           baseos              39 M
 kernel-modules                       x86_64          4.18.0-365.el8                           baseos              31 M
Upgrading:
 authselect-compat                    x86_64          1.2.2-3.el8                              appstream           38 k
 libfastjson                          x86_64          0.99.9-1.el8                             appstream           38 k
 libmaxminddb                         x86_64          1.2.0-10.el8                             appstream           33 k
 libxkbcommon                         x86_64          0.9.1-1.el8                              appstream          116 k
 oddjob                               x86_64          0.34.7-1.el8                             appstream           80 k
 oddjob-mkhomedir                     x86_64          0.34.7-1.el8                             appstream           49 k
 plymouth                             x86_64          0.9.4-10.20200615git1e36e30.el8          appstream          127 k
 plymouth-core-libs                   x86_64          0.9.4-10.20200615git1e36e30.el8          appstream          122 k
 plymouth-scripts                     x86_64          0.9.4-10.20200615git1e36e30.el8          appstream           44 k
 python3-newt                         x86_64          0.52.20-11.el8                           appstream           64 k
 python3-pyOpenSSL                    noarch          19.0.0-1.el8                             appstream          103 k
 python3-unbound                      x86_64          1.7.3-17.el8                             appstream          119 k
 rsyslog                              x86_64          8.2102.0-7.el8                           appstream          752 k
 unbound-libs                         x86_64          1.7.3-17.el8                             appstream          503 k
 xkeyboard-config                     noarch          2.28-1.el8                               appstream          782 k
 NetworkManager                       x86_64          1:1.36.0-0.9.el8                         baseos             2.3 M
 NetworkManager-libnm                 x86_64          1:1.36.0-0.9.el8                         baseos             1.8 M
 NetworkManager-team                  x86_64          1:1.36.0-0.9.el8                         baseos             152 k
 NetworkManager-tui                   x86_64          1:1.36.0-0.9.el8                         baseos             345 k
 audit                                x86_64          3.0.7-1.el8                              baseos             263 k
 audit-libs                           x86_64          3.0.7-1.el8                              baseos             122 k
 authselect                           x86_64          1.2.2-3.el8                              baseos             133 k
 authselect-libs                      x86_64          1.2.2-3.el8                              baseos             222 k
 bash                                 x86_64          4.4.20-3.el8                             baseos             1.5 M
 bind-export-libs                     x86_64          32:9.11.36-2.el8                         baseos             1.1 M
 brotli                               x86_64          1.0.6-3.el8                              baseos             323 k
 c-ares                               x86_64          1.13.0-6.el8                             baseos              93 k
 ca-certificates                      noarch          2021.2.50-82.el8                         baseos             390 k
 centos-gpg-keys                      noarch          1:8-4.el8                                baseos              12 k
 centos-stream-release                noarch          8.6-1.el8                                baseos              22 k
 centos-stream-repos                  noarch          8-4.el8                                  baseos              20 k
 chkconfig                            x86_64          1.19.1-1.el8                             baseos             198 k
 chrony                               x86_64          4.1-1.el8                                baseos             327 k
 coreutils                            x86_64          8.30-12.el8                              baseos             1.2 M
 coreutils-common                     x86_64          8.30-12.el8                              baseos             2.0 M
 cpio                                 x86_64          2.12-11.el8                              baseos             266 k
 cronie                               x86_64          1.5.2-6.el8                              baseos             118 k
 cronie-anacron                       x86_64          1.5.2-6.el8                              baseos              42 k
 crontabs                             noarch          1.11-17.20190603git.el8                  baseos              25 k
 crypto-policies                      noarch          20211116-1.gitae470d6.el8                baseos              64 k
 cryptsetup-libs                      x86_64          2.3.7-1.el8                              baseos             487 k
 curl                                 x86_64          7.61.1-22.el8                            baseos             351 k
 cyrus-sasl-lib                       x86_64          2.1.27-5.el8                             baseos             123 k
 dbus                                 x86_64          1:1.12.8-18.el8                          baseos              41 k
 dbus-common                          noarch          1:1.12.8-18.el8                          baseos              46 k
 dbus-daemon                          x86_64          1:1.12.8-18.el8                          baseos             240 k
 dbus-libs                            x86_64          1:1.12.8-18.el8                          baseos             184 k
 dbus-tools                           x86_64          1:1.12.8-18.el8                          baseos              85 k
 device-mapper                        x86_64          8:1.02.181-3.el8                         baseos             377 k
 device-mapper-libs                   x86_64          8:1.02.181-3.el8                         baseos             410 k
 dhcp-client                          x86_64          12:4.3.6-47.el8.0.1                      baseos             318 k
 dhcp-common                          noarch          12:4.3.6-47.el8.0.1                      baseos             207 k
 dhcp-libs                            x86_64          12:4.3.6-47.el8.0.1                      baseos             148 k
 diffutils                            x86_64          3.6-6.el8                                baseos             358 k
 dmidecode                            x86_64          1:3.3-1.el8                              baseos              92 k
 dnf                                  noarch          4.7.0-7.el8                              baseos             544 k
 dnf-data                             noarch          4.7.0-7.el8                              baseos             155 k
 dnf-plugins-core                     noarch          4.0.21-10.el8                            baseos              71 k
 dracut                               x86_64          049-201.git20220131.el8                  baseos             376 k
 dracut-config-rescue                 x86_64          049-201.git20220131.el8                  baseos              61 k
 dracut-network                       x86_64          049-201.git20220131.el8                  baseos             109 k
 dracut-squash                        x86_64          049-201.git20220131.el8                  baseos              62 k
 e2fsprogs                            x86_64          1.45.6-3.el8                             baseos             1.0 M
 e2fsprogs-libs                       x86_64          1.45.6-3.el8                             baseos             233 k
 elfutils-default-yama-scope          noarch          0.186-1.el8                              baseos              50 k
 elfutils-libelf                      x86_64          0.186-1.el8                              baseos             229 k
 elfutils-libs                        x86_64          0.186-1.el8                              baseos             295 k
 ethtool                              x86_64          2:5.13-1.el8                             baseos             219 k
 expat                                x86_64          2.2.5-5.el8                              baseos             112 k
 file                                 x86_64          5.33-20.el8                              baseos              77 k
 file-libs                            x86_64          5.33-20.el8                              baseos             543 k
 filesystem                           x86_64          3.8-6.el8                                baseos             1.1 M
 firewalld                            noarch          0.9.3-11.el8                             baseos             503 k
 firewalld-filesystem                 noarch          0.9.3-11.el8                             baseos              78 k
 freetype                             x86_64          2.9.1-4.el8_3.1                          baseos             394 k
 fuse-libs                            x86_64          2.9.7-14.el8                             baseos             102 k
 gawk                                 x86_64          4.2.1-2.el8                              baseos             1.1 M
 glib2                                x86_64          2.56.4-158.el8                           baseos             2.5 M
 glibc                                x86_64          2.28-189.el8                             baseos             2.2 M
 glibc-common                         x86_64          2.28-189.el8                             baseos             1.3 M
 glibc-langpack-en                    x86_64          2.28-189.el8                             baseos             834 k
 gnupg2                               x86_64          2.2.20-2.el8                             baseos             2.4 M
 gnupg2-smime                         x86_64          2.2.20-2.el8                             baseos             283 k
 gnutls                               x86_64          3.6.16-4.el8                             baseos             1.0 M
 gpgme                                x86_64          1.13.1-11.el8                            baseos             336 k
 grub2-common                         noarch          1:2.02-106.el8                           baseos             891 k
 grub2-pc                             x86_64          1:2.02-106.el8                           baseos              42 k
 grub2-pc-modules                     noarch          1:2.02-106.el8                           baseos             916 k
 grub2-tools                          x86_64          1:2.02-106.el8                           baseos             2.0 M
 grub2-tools-extra                    x86_64          1:2.02-106.el8                           baseos             1.1 M
 grub2-tools-minimal                  x86_64          1:2.02-106.el8                           baseos             210 k
 grubby                               x86_64          8.40-42.el8                              baseos              49 k
 gzip                                 x86_64          1.9-12.el8                               baseos             167 k
 hdparm                               x86_64          9.54-4.el8                               baseos             100 k
 hostname                             x86_64          3.20-7.el8.0.1                           baseos              32 k
 hwdata                               noarch          0.314-8.12.el8                           baseos             1.7 M
 ima-evm-utils                        x86_64          1.3.2-12.el8                             baseos              64 k
 info                                 x86_64          6.5-7.el8_5                              baseos             198 k
 ipcalc                               x86_64          0.2.4-4.el8                              baseos              38 k
 iproute                              x86_64          5.15.0-3.el8                             baseos             796 k
 iprutils                             x86_64          2.4.19-1.el8                             baseos             255 k
 iptables                             x86_64          1.8.4-22.el8                             baseos             584 k
 iptables-ebtables                    x86_64          1.8.4-22.el8                             baseos              72 k
 iptables-libs                        x86_64          1.8.4-22.el8                             baseos             108 k
 iputils                              x86_64          20180629-9.el8                           baseos             148 k
 irqbalance                           x86_64          2:1.4.0-6.el8                            baseos              56 k
 iwl100-firmware                      noarch          39.31.5.1-106.el8.1                      baseos             174 k
 iwl1000-firmware                     noarch          1:39.31.5.1-106.el8.1                    baseos             237 k
 iwl105-firmware                      noarch          18.168.6.1-106.el8.1                     baseos             258 k
 iwl135-firmware                      noarch          18.168.6.1-106.el8.1                     baseos             267 k
 iwl2000-firmware                     noarch          18.168.6.1-106.el8.1                     baseos             261 k
 iwl2030-firmware                     noarch          18.168.6.1-106.el8.1                     baseos             269 k
 iwl3160-firmware                     noarch          1:25.30.13.0-106.el8.1                   baseos             1.7 M
 iwl3945-firmware                     noarch          15.32.2.9-106.el8.1                      baseos             112 k
 iwl4965-firmware                     noarch          228.61.2.24-106.el8.1                    baseos             125 k
 iwl5000-firmware                     noarch          8.83.5.1_1-106.el8.1                     baseos             318 k
 iwl5150-firmware                     noarch          8.24.2.2-106.el8.1                       baseos             170 k
 iwl6000-firmware                     noarch          9.221.4.1-106.el8.1                      baseos             191 k
 iwl6000g2a-firmware                  noarch          18.168.6.1-106.el8.1                     baseos             334 k
 iwl6050-firmware                     noarch          41.28.5.1-106.el8.1                      baseos             267 k
 iwl7260-firmware                     noarch          1:25.30.13.0-106.el8.1                   baseos              23 M
 jansson                              x86_64          2.14-1.el8                               baseos              47 k
 json-c                               x86_64          0.13.1-3.el8                             baseos              41 k
 kbd                                  x86_64          2.0.4-10.el8                             baseos             390 k
 kbd-legacy                           noarch          2.0.4-10.el8                             baseos             481 k
 kbd-misc                             noarch          2.0.4-10.el8                             baseos             1.5 M
 kernel-tools                         x86_64          4.18.0-365.el8                           baseos             7.9 M
 kernel-tools-libs                    x86_64          4.18.0-365.el8                           baseos             7.7 M
 kexec-tools                          x86_64          2.0.20-68.el8                            baseos             523 k
 keyutils-libs                        x86_64          1.5.10-9.el8                             baseos              34 k
 kmod                                 x86_64          25-19.el8                                baseos             126 k
 kmod-libs                            x86_64          25-19.el8                                baseos              68 k
 kpartx                               x86_64          0.8.4-22.el8                             baseos             114 k
 krb5-libs                            x86_64          1.18.2-14.el8                            baseos             840 k
 libarchive                           x86_64          3.3.3-3.el8_5                            baseos             360 k
 libblkid                             x86_64          2.32.1-32.el8                            baseos             218 k
 libcap                               x86_64          2.48-2.el8                               baseos              74 k
 libcap-ng                            x86_64          0.7.11-1.el8                             baseos              33 k
 libcom_err                           x86_64          1.45.6-3.el8                             baseos              49 k
 libcomps                             x86_64          0.1.18-1.el8                             baseos              82 k
 libcroco                             x86_64          0.6.12-4.el8_2.1                         baseos             113 k
 libcurl                              x86_64          7.61.1-22.el8                            baseos             301 k
 libdb                                x86_64          5.3.28-42.el8_4                          baseos             751 k
 libdb-utils                          x86_64          5.3.28-42.el8_4                          baseos             150 k
 libdnf                               x86_64          0.63.0-7.el8                             baseos             701 k
 libfdisk                             x86_64          2.32.1-32.el8                            baseos             252 k
 libffi                               x86_64          3.1-23.el8                               baseos              37 k
 libgcc                               x86_64          8.5.0-10.el8                             baseos              80 k
 libgcrypt                            x86_64          1.8.5-6.el8                              baseos             463 k
 libgomp                              x86_64          8.5.0-10.el8                             baseos             207 k
 libkcapi                             x86_64          1.2.0-2.el8                              baseos              48 k
 libkcapi-hmaccalc                    x86_64          1.2.0-2.el8                              baseos              31 k
 libldb                               x86_64          2.4.1-1.el8                              baseos             188 k
 libmodulemd1                         x86_64          1.8.16-0.2.13.0.1                        baseos             176 k
 libmount                             x86_64          2.32.1-32.el8                            baseos             235 k
 libndp                               x86_64          1.7-6.el8                                baseos              40 k
 libnfsidmap                          x86_64          1:2.3.3-50.el8                           baseos             121 k
 libnftnl                             x86_64          1.1.5-5.el8                              baseos              83 k
 libnghttp2                           x86_64          1.33.0-3.el8_2.1                         baseos              77 k
 libnl3                               x86_64          3.5.0-1.el8                              baseos             320 k
 libnl3-cli                           x86_64          3.5.0-1.el8                              baseos             193 k
 libpcap                              x86_64          14:1.9.1-5.el8                           baseos             169 k
 libpsl                               x86_64          0.20.2-6.el8                             baseos              61 k
 libpwquality                         x86_64          1.4.4-3.el8                              baseos             107 k
 librepo                              x86_64          1.14.2-1.el8                             baseos              93 k
 libreport-filesystem                 x86_64          2.9.5-15.el8                             baseos              21 k
 libseccomp                           x86_64          2.5.2-1.el8                              baseos              71 k
 libselinux                           x86_64          2.9-5.el8                                baseos             165 k
 libselinux-utils                     x86_64          2.9-5.el8                                baseos             243 k
 libsemanage                          x86_64          2.9-6.el8                                baseos             165 k
 libsepol                             x86_64          2.9-3.el8                                baseos             340 k
 libsmartcols                         x86_64          2.32.1-32.el8                            baseos             178 k
 libsolv                              x86_64          0.7.20-1.el8                             baseos             375 k
 libss                                x86_64          1.45.6-3.el8                             baseos              54 k
 libssh                               x86_64          0.9.6-3.el8                              baseos             216 k
 libssh-config                        noarch          0.9.6-3.el8                              baseos              19 k
 libsss_autofs                        x86_64          2.6.1-2.el8                              baseos             119 k
 libsss_certmap                       x86_64          2.6.1-2.el8                              baseos             162 k
 libsss_idmap                         x86_64          2.6.1-2.el8                              baseos             121 k
 libsss_nss_idmap                     x86_64          2.6.1-2.el8                              baseos             128 k
 libsss_sudo                          x86_64          2.6.1-2.el8                              baseos             117 k
 libstdc++                            x86_64          8.5.0-10.el8                             baseos             453 k
 libsysfs                             x86_64          2.1.0-25.el8                             baseos              53 k
 libtalloc                            x86_64          2.3.3-1.el8                              baseos              49 k
 libtdb                               x86_64          1.4.4-1.el8                              baseos              59 k
 libteam                              x86_64          1.31-2.el8                               baseos              64 k
 libtevent                            x86_64          0.11.0-0.el8                             baseos              50 k
 libtirpc                             x86_64          1.1.4-6.el8                              baseos             113 k
 libusbx                              x86_64          1.0.23-4.el8                             baseos              74 k
 libuser                              x86_64          0.62-24.el8                              baseos             414 k
 libuuid                              x86_64          2.32.1-32.el8                            baseos              97 k
 libxcrypt                            x86_64          4.1.1-6.el8                              baseos              73 k
 libxml2                              x86_64          2.9.7-11.el8                             baseos             696 k
 linux-firmware                       noarch          20220210-106.git6342082c.el8             baseos             194 M
 logrotate                            x86_64          3.14.0-4.el8                             baseos              86 k
 lshw                                 x86_64          B.02.19.2-6.el8                          baseos             341 k
 lsscsi                               x86_64          0.32-3.el8                               baseos              71 k
 lua-libs                             x86_64          5.3.4-12.el8                             baseos             118 k
 lz4-libs                             x86_64          1.8.3-3.el8_4                            baseos              66 k
 man-db                               x86_64          2.7.6.1-18.el8                           baseos             887 k
 microcode_ctl                        x86_64          4:20220207-1.el8                         baseos             5.5 M
 mozjs60                              x86_64          60.9.0-4.el8                             baseos             6.6 M
 ncurses                              x86_64          6.1-9.20180224.el8                       baseos             387 k
 ncurses-base                         noarch          6.1-9.20180224.el8                       baseos              81 k
 ncurses-libs                         x86_64          6.1-9.20180224.el8                       baseos             334 k
 net-tools                            x86_64          2.0-0.52.20160912git.el8                 baseos             322 k
 nettle                               x86_64          3.4.1-7.el8                              baseos             301 k
 newt                                 x86_64          0.52.20-11.el8                           baseos             121 k
 nftables                             x86_64          1:0.9.3-24.el8                           baseos             323 k
 numactl-libs                         x86_64          2.0.12-13.el8                            baseos              36 k
 openldap                             x86_64          2.4.46-18.el8                            baseos             352 k
 openssh                              x86_64          8.0p1-12.el8                             baseos             522 k
 openssh-clients                      x86_64          8.0p1-12.el8                             baseos             668 k
 openssh-server                       x86_64          8.0p1-12.el8                             baseos             491 k
 openssl                              x86_64          1:1.1.1k-5.el8_5                         baseos             709 k
 openssl-libs                         x86_64          1:1.1.1k-5.el8_5                         baseos             1.5 M
 openssl-pkcs11                       x86_64          0.4.10-2.el8                             baseos              66 k
 os-prober                            x86_64          1.74-9.el8                               baseos              51 k
 p11-kit                              x86_64          0.23.22-1.el8                            baseos             324 k
 p11-kit-trust                        x86_64          0.23.22-1.el8                            baseos             137 k
 pam                                  x86_64          1.3.1-16.el8                             baseos             739 k
 parted                               x86_64          3.2-39.el8                               baseos             555 k
 passwd                               x86_64          0.80-4.el8                               baseos             115 k
 pciutils-libs                        x86_64          3.7.0-1.el8                              baseos              54 k
 pcre                                 x86_64          8.42-6.el8                               baseos             211 k
 pcre2                                x86_64          10.32-2.el8                              baseos             246 k
 pigz                                 x86_64          2.4-4.el8                                baseos              79 k
 platform-python                      x86_64          3.6.8-45.el8                             baseos              85 k
 platform-python-pip                  noarch          9.0.3-22.el8                             baseos             1.6 M
 platform-python-setuptools           noarch          39.2.0-6.el8                             baseos             632 k
 policycoreutils                      x86_64          2.9-18.el8                               baseos             375 k
 polkit                               x86_64          0.115-13.el8_5.1                         baseos             154 k
 polkit-libs                          x86_64          0.115-13.el8_5.1                         baseos              76 k
 popt                                 x86_64          1.18-1.el8                               baseos              61 k
 procps-ng                            x86_64          3.3.15-6.el8                             baseos             329 k
 psmisc                               x86_64          23.1-5.el8                               baseos             151 k
 python3-cryptography                 x86_64          3.2.1-5.el8                              baseos             559 k
 python3-dnf                          noarch          4.7.0-7.el8                              baseos             545 k
 python3-dnf-plugins-core             noarch          4.0.21-10.el8                            baseos             230 k
 python3-firewall                     noarch          0.9.3-11.el8                             baseos             433 k
 python3-gobject-base                 x86_64          3.28.3-2.el8                             baseos             313 k
 python3-gpg                          x86_64          1.13.1-11.el8                            baseos             244 k
 python3-hawkey                       x86_64          0.63.0-7.el8                             baseos             116 k
 python3-libcomps                     x86_64          0.1.18-1.el8                             baseos              52 k
 python3-libdnf                       x86_64          0.63.0-7.el8                             baseos             778 k
 python3-librepo                      x86_64          1.14.2-1.el8                             baseos              53 k
 python3-libs                         x86_64          3.6.8-45.el8                             baseos             7.8 M
 python3-libselinux                   x86_64          2.9-5.el8                                baseos             283 k
 python3-libxml2                      x86_64          2.9.7-11.el8                             baseos             237 k
 python3-linux-procfs                 noarch          0.7.0-1.el8                              baseos              42 k
 python3-perf                         x86_64          4.18.0-365.el8                           baseos             7.9 M
 python3-pip-wheel                    noarch          9.0.3-22.el8                             baseos             895 k
 python3-ply                          noarch          3.9-9.el8                                baseos             111 k
 python3-rpm                          x86_64          4.14.3-22.el8                            baseos             155 k
 python3-setuptools-wheel             noarch          39.2.0-6.el8                             baseos             289 k
 python3-syspurpose                   x86_64          1.28.25-1.el8                            baseos             324 k
 rng-tools                            x86_64          6.14-4.git.b2b7934e.el8                  baseos              72 k
 rpm                                  x86_64          4.14.3-22.el8                            baseos             543 k
 rpm-build-libs                       x86_64          4.14.3-22.el8                            baseos             157 k
 rpm-libs                             x86_64          4.14.3-22.el8                            baseos             345 k
 rpm-plugin-selinux                   x86_64          4.14.3-22.el8                            baseos              77 k
 rpm-plugin-systemd-inhibit           x86_64          4.14.3-22.el8                            baseos              79 k
 sed                                  x86_64          4.5-5.el8                                baseos             298 k
 selinux-policy                       noarch          3.14.3-92.el8                            baseos             643 k
 selinux-policy-targeted              noarch          3.14.3-92.el8                            baseos              15 M
 sg3_utils                            x86_64          1.44-5.el8                               baseos             917 k
 sg3_utils-libs                       x86_64          1.44-5.el8                               baseos              99 k
 snappy                               x86_64          1.1.8-3.el8                              baseos              37 k
 sqlite-libs                          x86_64          3.26.0-15.el8                            baseos             581 k
 squashfs-tools                       x86_64          4.3-20.el8                               baseos             165 k
 sssd-client                          x86_64          2.6.1-2.el8                              baseos             224 k
 sssd-common                          x86_64          2.6.1-2.el8                              baseos             1.6 M
 sssd-kcm                             x86_64          2.6.1-2.el8                              baseos             250 k
 sssd-nfs-idmap                       x86_64          2.6.1-2.el8                              baseos             118 k
 sudo                                 x86_64          1.8.29-8.el8                             baseos             925 k
 systemd                              x86_64          239-58.el8                               baseos             3.6 M
 systemd-libs                         x86_64          239-58.el8                               baseos             1.1 M
 systemd-pam                          x86_64          239-58.el8                               baseos             483 k
 systemd-udev                         x86_64          239-58.el8                               baseos             1.6 M
 teamd                                x86_64          1.31-2.el8                               baseos             130 k
 trousers                             x86_64          0.3.15-1.el8                             baseos             152 k
 trousers-lib                         x86_64          0.3.15-1.el8                             baseos             168 k
 tuned                                noarch          2.18.0-2.el8                             baseos             316 k
 tzdata                               noarch          2021e-1.el8                              baseos             474 k
 util-linux                           x86_64          2.32.1-32.el8                            baseos             2.5 M
 vim-minimal                          x86_64          2:8.0.1763-16.el8_5.12                   baseos             575 k
 virt-what                            x86_64          1.18-13.el8                              baseos              36 k
 which                                x86_64          2.21-17.el8                              baseos              49 k
 xfsprogs                             x86_64          5.0.0-10.el8                             baseos             1.1 M
 yum                                  noarch          4.7.0-7.el8                              baseos             201 k
 zlib                                 x86_64          1.2.11-17.el8                            baseos             102 k
Installing dependencies:
 grub2-tools-efi                      x86_64          1:2.02-106.el8                           baseos             474 k
 initscripts                          x86_64          10.00.17-1.el8                           baseos             340 k
 libbpf                               x86_64          0.4.0-3.el8                              baseos             125 k
 libibverbs                           x86_64          37.2-1.el8                               baseos             384 k
 libmodulemd                          x86_64          2.13.0-1.el8                             baseos             233 k
 libzstd                              x86_64          1.4.4-1.el8                              baseos             266 k
 lmdb-libs                            x86_64          0.9.24-1.el8                             baseos              58 k
 python3-nftables                     x86_64          1:0.9.3-24.el8                           baseos              29 k
 setup                                noarch          2.12.2-6.el8                             baseos             181 k
 shadow-utils                         x86_64          2:4.6-16.el8                             baseos             1.2 M
 tpm2-tss                             x86_64          2.3.2-4.el8                              baseos             275 k
Installing weak dependencies:
 glibc-gconv-extra                    x86_64          2.28-189.el8                             appstream          1.5 M
 crypto-policies-scripts              noarch          20211116-1.gitae470d6.el8                baseos              83 k
 elfutils-debuginfod-client           x86_64          0.186-1.el8                              baseos              71 k
 memstrack                            x86_64          0.1.11-1.el8                             baseos              48 k

Transaction Summary
========================================================================================================================
Install   18 Packages
Upgrade  291 Packages

Total download size: 463 M
Is this ok [y/N]: y
Downloading Packages:

Everything goes fine

[Distributed System] Summary

Synchronization

Logic Clock

Lamport Timestamp

a ->b ==> TS(a) < TS(b) The reverse does not hold.

vector lock

Use vector to store the lock with every cores. Follows the reverse of the property.

Ordering



FLP

To prove that random timeouts can avoid live locking.

  • Lemma 1: Disjoint schedules are commutative
  • Lemma 2: There exists an initial configuration that is bivalent
  • Lemma 3: Starting from a bivalent config., there is always another bivalent config. that is reachable
  • Theorem (Impossibility of Consensus): There is always a run of events in an asynchronous distributed system such that the group of processes never reach consensus (i.e., stays bivalent all the time)

RPC

  • RPC = Remote Procedure Call
  • Proposed by Birrell and Nelson in 1984
  • Important abstraction for processes to call functions in other processes
  • Allows code reuse
  • Implemented and used in most distributed systems, including cloud computing systems
  • Counterpart in Object-based settings is called RMI (Remote Method Invocation)
  • What’s the No. 1 design choice for RPC?

Local Procedure Call (LPC)

The call from one function to another function within the same process

  • Uses stack to pass arguments and return values
  • Accesses objects via pointers(e.g., C) or by reference(e.g., Java)

LPC has exactly-once semantics

Remote Procedure Call

Call from one function to another function, where caller and callee function reside in different processes

  • Function call crosses a process boundary
  • Accesses procedures via global references(e.g., Procedure address = IP + port + procedure number)
  • Cannot use pointers across processes since a reference address in process P1 may point to a different object in another process P2(We need serialization)
    Similarly, RMI (Remote Method Invocation) in Object-based settings

Semantics

  • Under failures, hard to guarantee exactly-once semantics
  • Function may not be executed if
    • Request (call) message is dropped
    • Reply (return) message is dropped
    • Called process fails before executing called function
    • Called process fails after executing called function
    • Hard for the caller to distinguish these cases
  • Function may be executed multiple times if
    • Request (call) message is duplicated

Idempotent OPerations
  • Idempotent operations are those that can be repeated multiple times, without any side effects
  • Idempotent operations can be used with at-least-once semantics

implementation

  • client stub: has same function signature as callee()
  • communication module: Forwards requests and replies to appropriate hosts
  • dispatcher: Selects which server stub to forward a request to
  • server stub: calls callee(), allows it to return a value

ACID

  • Atomicity: "all or nothing"
  • Consistency: "it looks correct to me"
  • Isolation: "as if alone"
  • Durability: "survive failures"


Fault in the Two-phase Commit

  • What if the database node crashes?
  • What if the coordinator crashes?
    • Coordinator writes its decision to disk
    • When it recovers, read the decision from the disk and send it to replicas (or abort if no decision was made before the crash)
  • If the coordinate crashes after preparation, but before broadcasting the decision, other nodes do not know how it has been decided.
    • Replicas participating in the transaction cannot commit or abort after responding “ok” to the prepared request
    • Algorithm is blocked until coordinator recovers






Consensus Protocol

Replication

Fault Tolerance and Reliable Multicast

P2P System

Provenance:

  1. Specialized
  2. light-weight
  3. easy-to-use software to enable Internet-scale file sharing

Data-intensive Computing: Massive

  1. Some Examples
    1. Google MapReduce
      • Yahoo Hadoop/PIG
      • Data parallel computing
    2. IBM Research System S
      • InfosphereStream product
      • Continuous Data stream processing
    3. Microsoft Dryad/ LINQ
      • DAG processing
      • SQL query support
  2. Google Infra
    1. Distributed file systems: GFS
    2. Distributed storage: BigTable
    3. Job scheduler: the work queue
    4. Parallel computation: MapReduce
    5. Distributed lock server: chubby

Map Reduce

  • A user-specified map the function processes a key/value pair to generate a set of intermediate key/value pairs.
  • A user-specified reduce function merges all intermediate values associated with the same intermediate key.

Cloud Computing

Cloud Compute

AI for systems

  • AI for IT operations. AIOps combines big data and ML to automate IT operations processes.
  • digital economy - increasing complexity of modern application arch.
  • no manual intervention
  • increased automation and faster remediation

The proliferation of monitoring tools makes analytics challenging

  • The use of disparate monitoring tools makes it extremely difficult to obtain end-to-end visibility across the entire business service or application
  • 72% of IT organizations rely on up to nine different IT monitoring tools to support the modern application.

Case Study

Use un-supervised data to dig the vast majority of DevOps data.

runtime timeout bug identification tool.

  • Combines timeout-related feature selection and runtime anomaly detection to achieve higher precision.
  • does not require any application instrumentation for bug detection.
  • Evaluates over 19 performance bugs and identifies 18 of them.

Docker container Vulnerability Detection

AIOps @Microsoft

Reference

  1. https://zhuanlan.zhihu.com/p/504176976

[Program Analysis] Intermediate Representation

我又来学软工了😄,倒腾java的种种,今天就在乱搞soot,跑一个命令行真脑瘫。不过zhe次不像暑研要写在Phosphor上的ASM visitor,只需处理三地址码的jimple就好。

 java -cp "/Users/yiweiyang/.m2/repository/org/soot-oss/soot/4.2.1/soot-4.2.1.jar:/Users/yiweiyang/.m2/repository/org/slf4j/slf4j-api/1.7.5/slf4j-api-1.7.5.jar:/Users/yiweiyang/.m2/repository/org/slf4j/slf4j-log4j12/1.7.5/slf4j-log4j12-1.7.5.jar:/Users/yiweiyang/.m2/repository/log4j/log4j/1.2.17/log4j-1.2.17.jar:/Users/yiweiyang/.m2/repository/de/upb/cs/swt/axml/2.0.0/axml-2.0.0.jar:/Users/yiweiyang/.m2/repository/com/google/guava/guava/19.0/guava-19.0.jar:/Users/yiweiyang/.m2/repository/org/ow2/asm/asm/9.2/asm-9.2.jar:/Users/yiweiyang/.m2/repository/org/ow2/asm/asm-commons/9.2/asm-commons-9.2.jar:/Users/yiweiyang/.m2/repository/org/ow2/asm/asm-tree/9.2/asm-tree-9.2.jar:/Users/yiweiyang/.m2/repository/de/upb/cs/swt/heros/1.2.2/heros-1.2.2.jar:/Users/yiweiyang/.m2/repository/org/ow2/asm/asm-util/9.2/asm-util-9.2.jar" soot.Main --soot-class-path /Users/yiweiyang/project/test_soot/target/classes:/Users/yiweiyang/.sdkman/candidates/java/current/jre/lib/rt.jar  Bear

Continue reading "[Program Analysis] Intermediate Representation"