小编Hal*_*lci的帖子

如何计算内核中活动用户的数量

我们使用的是内核版本2.4-20,我们需要在内核模式下计算活跃用户数.目标是更改调度程序,因此我们在sched.c中修改schedule()函数.

我们所做的是计算list_for_each宏中的用户.

list_for_each(tmp, &runqueue_head) {
    p = list_entry(tmp, struct task_struct, run_list);
    if (can_schedule(p, this_cpu)) {
        if (unique(p->uid)) add_new_user(p->uid);
        int weight = goodness(p, this_cpu, prev->active_mm);
        if (weight > c)
            c = weight, next = p;
    }
}
Run Code Online (Sandbox Code Playgroud)

这基本上是将唯一用户添加到列表中.但是,我们得到随机结果.有没有具体的方法来解决这个问题?

谢谢.

linux kernel scheduler

9
推荐指数
1
解决办法
1168
查看次数

GKE中的容器无法ping同一网络上的计算实例

我在GKE中创建了一个新集群,版本为1.10.5-gke.0。我看到我的应用程序无法访问同一网络中的IP,基本上是实例在计算上运行。

我已经切换到Kubernetes节点之一,并且通过使用附带的工具箱,我可以ping这些IP地址,但是如果我尝试从在此集群上运行的容器中尝试,则无法这样做。

我看到,自1.10以来,google禁用了计算和存储的访问范围,即使启用了这些范围,我仍然会得到相同的结果。

我觉得有些困惑,因为它过去可以用于所有其他集群,而无需任何额外的配置

我在这里想念什么吗?

google-cloud-platform kubernetes google-kubernetes-engine

6
推荐指数
2
解决办法
1416
查看次数

int64_t 再次加倍到 int64_t,精度损失

我需要解析用科学记数法表示的给定类型(例如:long long integer)。例子:

123456789012345678.3e-3
123456789012345678.3
Run Code Online (Sandbox Code Playgroud)

我知道给定字符串的类型,但我不能使用 strtoll,因为数字是用科学记数法给出的。我所做的是使用 strtod 对其进行转换,对 int64_t 进行错误检查并将其转换回 int64_t。ErrCheckInt 和 ErrCheckDouble 对整型和浮点类型进行错误检查(上溢、下溢等),并将数字转换为任何类型。.

double res = strtod(processedStr, &end);
return (std::is_floating_point<OUT_T>::value) ? ErrCheckFloat<double, OUT_T>(res, out) : ErrCheckInt<double, OUT_T>(res, out);
Run Code Online (Sandbox Code Playgroud)

问题是当我用 double 解析 int64_t 时,我得到一个带有正确科学记数法的浮点数,1 个有效数。当我再次将数字转换为 int64_t 时,我失去了精度。示例编号:

input:             123456789012345678.3
double_converted:  1.23456789012346E+17
cast_to_int64_t:   123456789012345680
expected:          123456789012345678
Run Code Online (Sandbox Code Playgroud)

我知道这个数字足够长,可以用双精度正确表示。我可以使用 long double 但这不能解决问题。

我可以评估字符串并最终删除/添加与 e 符号相关的数字,但处理应该非常非常快,因为代码将在嵌入式 rtos 中运行。我已经做了很多检查,strtod 也会花时间。

c++ floating-point type-conversion floating-accuracy

5
推荐指数
1
解决办法
1980
查看次数

未知标志:--go_opt 重新生成 gRPC 代码时

我按照此链接https://grpc.io/docs/languages/go/quickstart/ 中的 gRPC 快速入门文档进行操作,在重新生成 gRPC 代码时出现错误(未知标志:--go_opt),如下所示。尝试了所有选项但不起作用。它还给出(未知标志:--go-grpc_opt)错误。

命令 -

$ protoc \
  --go_out=Mgrpc/service_config/service_config.proto=/internal/proto/grpc_service_config:. \
  --go-grpc_out=Mgrpc/service_config/service_config.proto=/internal/proto/grpc_service_config:. \
  --go-grpc_opt=paths=source_relative \
  helloworld/helloworld.proto

Error - Unknown flag: --go_opt
Run Code Online (Sandbox Code Playgroud)

go grpc

3
推荐指数
1
解决办法
5274
查看次数

XML 绑定到 WPF 中的 DataGrid

我正在尝试将 XML 数据绑定到 DataView。我正在遵循本指南,但是即使我可以在 Visual Studio 2013 下看到结果,但在运行程序时却看不到结果。我尝试将 Movies.xml 添加到资源并将其添加到项目目录。目前它位于项目根路径下。当我写这篇文章时,有一段时间我在项目运行时看到了结果,但是在干净的构建之后它再次消失了。

电影.XML:

<?xml version="1.0" encoding="utf-8" ?>
<Movies xmlns="">
  <Movie Name="Seven Samurai" Id="101" Director="Akira Kurosawa" />
  <Movie Name="Happy Together" Id="102" Director="Wong Kar Wai"/>
  <Movie Name="Shoot The Piano Player" Id="103" Director="Francois Truffaut"/>
  <Movie Name="Roshomon" Id="104" Director="Akira Kurosawa" />
  <Movie Name="Dead Man" Id="105" Director="Jim Jarmusch"/>
  <Movie Name="Children of Heaven" Id="106" Director="Majid Majidi"/>
</Movies>
Run Code Online (Sandbox Code Playgroud)

XAML:

<Window x:Class="DataGridXML.MainWindow"
       xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <Grid.Resources>
            <XmlDataProvider x:Key="MovieData" Source="Movies.xml" XPath="/Movies/Movie"/>
        </Grid.Resources>
        <DataGrid x:Name="dgridEmp" DataContext="{StaticResource MovieData}" …
Run Code Online (Sandbox Code Playgroud)

c# xml wpf datagrid visual-studio-2013

2
推荐指数
1
解决办法
1万
查看次数