INIT_WORK的暂时理解

本文介绍了一个用于处理SCSI固件事件的函数_scsih_fw_event_add的具体实现过程,包括初始化链表、添加事件、初始化工作函数及排队处理等步骤。

/**
 * _scsih_fw_event_add - insert and queue up fw_event
 * @ioc: per adapter object
 * @fw_event: object describing the event
 * Context: This function will acquire ioc->fw_event_lock.
 *
 * This adds the firmware event object into link list, then queues it up to
 * be processed from user context.
 *
 * Return nothing.
 */
static void
_scsih_fw_event_add(struct MPT2SAS_ADAPTER *ioc, struct fw_event_work *fw_event)
{
 unsigned long flags;

 if (ioc->firmware_event_thread == NULL)
  return;

 spin_lock_irqsave(&ioc->fw_event_lock, flags);
 INIT_LIST_HEAD(&fw_event->list);
 list_add_tail(&fw_event->list, &ioc->fw_event_list);
#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,19))
 INIT_WORK(&fw_event->work, _firmware_event_work);
#else
 INIT_WORK(&fw_event->work, _firmware_event_work, (void *)fw_event);
#endif
 queue_work(ioc->firmware_event_thread, &fw_event->work);
 spin_unlock_irqrestore(&ioc->fw_event_lock, flags);
}

 

这里写下对这个函数的理解

首先:

1。INIT_LIST_HEAD(&fw_event->list)

初始化firmware事件链表

2。list_add_tail()

把这个firmware事件添加到firmware时间链表尾巴上

3。INIT_WORK

给该firmware事件初始化工作函数

4。queue_work

把该firmware工作排在firmware事件线程队列中

⚠️ SIoU 补丁应用失败: type object 'v8DetectionLoss' has no attribute 'forward' New https://pypi.org/project/ultralytics/8.3.235 available Update with 'pip install -U ultralytics' Traceback (most recent call last): File "C:\Users\ASUS\Desktop\ultralyticsyuanyuan - 副本 (2)\train.py", line 60, in <module> main() File "C:\Users\ASUS\Desktop\ultralyticsyuanyuan - 副本 (2)\train.py", line 42, in main results = model.train( File "D:\miniconda3\envs\yolov8\lib\site-packages\ultralytics\engine\model.py", line 795, in train self.trainer = (trainer or self._smart_load("trainer"))(overrides=args, _callbacks=self.callbacks) File "D:\miniconda3\envs\yolov8\lib\site-packages\ultralytics\models\yolo\detect\train.py", line 65, in __init__ super().__init__(cfg, overrides, _callbacks) File "D:\miniconda3\envs\yolov8\lib\site-packages\ultralytics\engine\trainer.py", line 124, in __init__ self.args = get_cfg(cfg, overrides) File "D:\miniconda3\envs\yolov8\lib\site-packages\ultralytics\cfg\__init__.py", line 309, in get_cfg check_dict_alignment(cfg, overrides) File "D:\miniconda3\envs\yolov8\lib\site-packages\ultralytics\cfg\__init__.py", line 502, in check_dict_alignment raise SyntaxError(string + CLI_HELP_MSG) from e SyntaxError: 'siou' is not a valid YOLO argument. Similar arguments are i.e. ['iou=0.7', 'source']. Arguments received: ['yolo']. Ultralytics 'yolo' commands use the following syntax: yolo TASK MODE ARGS Where TASK (optional) is one of ['detect', 'classify', 'obb', 'pose', 'segment'] MODE (required) is one of ['export', 'val', 'benchmark', 'predict', 'track', 'train'] ARGS (optional) are any number of custom 'arg=value' pairs like 'imgsz=320' that override defaults. See all ARGS at https://docs.ultralytics.com/usage/cfg or with 'yolo cfg' 1. Train a detection model for 10 epochs with an initial learning_rate of 0.01 yolo train data=coco8.yaml model=yolo11n.pt epochs=10 lr0=0.01 2. Predict a YouTube video using a pretrained segmentation model at image size 320: yolo predict model=yolo11n-seg.pt source='https://youtu.be/LNwODJXcvt4' imgsz=320 3. Val a pretrained detection model at batch-size 1 and image size 640: yolo val model=yolo11n.pt data=coco8.yaml batch=1 imgsz=640 4. Export a YOLO11n classification model to ONNX format at image size 224 by 128 (no TASK required) yolo export model=yolo11n-cls.pt format=onnx imgsz=224,128 5. Ultralytics solutions usage yolo solutions count or in ['crop', 'blur', 'workout', 'heatmap', 'isegment', 'visioneye', 'speed', 'queue', 'analytics', 'inference', 'trackzone'] source="path/to/video.mp4" 6. Run special commands: yolo help yolo checks yolo version yolo settings yolo copy-cfg yolo cfg yolo solutions help Docs: https://docs.ultralytics.com Solutions: https://docs.ultralytics.com/solutions/ Community: https://community.ultralytics.com GitHub: https://github.com/ultralytics/ultralytics
最新发布
12-09
Traceback (most recent call last): File "F:\yolov8\train.py", line 24, in <module> main() File "F:\yolov8\train.py", line 9, in main results = model.train( File "F:\yolov8\ultralytics\engine\model.py", line 791, in train self.trainer.train() File "F:\yolov8\ultralytics\engine\trainer.py", line 211, in train self._do_train(world_size) File "F:\yolov8\ultralytics\engine\trainer.py", line 326, in _do_train self._setup_train(world_size) File "F:\yolov8\ultralytics\engine\trainer.py", line 290, in _setup_train self.train_loader = self.get_dataloader(self.trainset, batch_size=batch_size, rank=LOCAL_RANK, mode="train") File "F:\yolov8\ultralytics\models\yolo\detect\train.py", line 82, in get_dataloader dataset = self.build_dataset(dataset_path, mode, batch_size) File "F:\yolov8\ultralytics\models\yolo\detect\train.py", line 65, in build_dataset return build_yolo_dataset(self.args, img_path, batch, self.data, mode=mode, rect=mode == "val", stride=gs) File "F:\yolov8\ultralytics\data\build.py", line 109, in build_yolo_dataset return dataset( File "F:\yolov8\ultralytics\data\dataset.py", line 86, in __init__ super().__init__(*args, **kwargs) File "F:\yolov8\ultralytics\data\base.py", line 108, in __init__ self.labels = self.get_labels() File "F:\yolov8\ultralytics\data\dataset.py", line 191, in get_labels len_cls, len_boxes, len_segments = (sum(x) for x in zip(*lengths)) ValueError: not enough values to unpack (expected 3, got 0) train: New cache created: F:\widerperson\labels\train.cache WARNING ⚠️ No images found in F:\widerperson\labels\train.cache, training may not work correctly. See https://docs.ultralytics.com/datasets for dataset formatting guidance. 分析一下这个yolov8训练wider person数据集问题所在
05-14
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值